Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Vista, TIniFile, Inis im Programmverzeichnis (https://www.delphipraxis.net/88262-vista-tinifile-inis-im-programmverzeichnis.html)

hoika 12. Mär 2007 19:40


Vista, TIniFile, Inis im Programmverzeichnis
 
Hallo #,

jaja, ich weiss, sowas macht man nicht ;).
Ich packe in die Ini das DB-Verzeichnis meiner Datenbank (Firebird).

Bei einigen Konfigurationen (sprich Kunden) gibt es mehrere
DB's in unterschiedlichen Verzeichnissen (man könnte es auch Mandant nennen).
Ne Art manuelle Vorauswahl geht nicht,
manchmal wird das Programm auch automatisch gestartet (geplante Vorgänge)

Ich habe dann immer das Programmeverzeichnis kopiert,
und die Ini entsprechend geändert.

Klappte bis zu XP auch ganz gut.

Jetzt kommt aber Vista :wall: .

Mein schöner Algorithmus klappt nicht mehr. *seufz*


Ich will das ganze in dem Zuge eh gleich maländern,
z.B. die Ini in .Conf umbenennen
und per "normalen" Textfile-Aufruf zu parsen.
So viel steht da nicht drin.

Die Frage ist, reicht hier ev. das einfache umbenennen in .conf
und trotzdem Zugriff über TMemIniFile,
damit Vista nicht rummeckert oder muss ich das Auslesen von Hand machen?

Ich habe hier beim Testen noch die Vermutung, dass die
Verzeichnis-Virtualisierung auch noch ne Reihe spielt.

Manchmal kann ich als User aus in die Ini eintragen (per Admin.-Editor),
der scheint das aber nicht richtig auszulesen.


Heiko

holliesoft 13. Mär 2007 05:24

Re: Vista, TIniFile, Inis im Programmverzeichnis
 
Hi,

der bei der Installation von Vista eingerichtete Hauptbenutzer ist zwar in der Gruppe Administratoren, jedoch werden Programme erstmal grundsätzlich ohne Admin-Rechte gestartet. Lösungsansätze:

- Du gibst dem Programmverzeichnis deines Programms Schreibberechtigung für alle Benutzer
- Du startest das Programm als Administrator (Rechtsklick - "Als Administrator ausführen".

Die sogenannte "Benutzerkontensteuerung", die hier bei Vista im Hintergrund läuft, verursacht einen Großteil der Probleme, die es mit Vista gibt :-( Aber diese Probleme gibt es halt meistens nur bei Software, die meint, sie muss ihre Daten unbedingt im Programmverzeichnis ablegen ;-)

Gruß,
Patrick

hoika 13. Mär 2007 06:32

Re: Vista, TIniFile, Inis im Programmverzeichnis
 
Hallo,

jaja ;)

nur wie gehe ich denn dann vor ?.
Nachmal der Hintergrund.

Mein Programm arbeitet mti mehreren Mandanten.
Jeder Mandant ist dabei genau eine Datenbank (Firebird).
Ich habe das so gelöst, dass das Programm zweimal installiert wird
(naja, einmal installiert, dann kopiert).
Im Exe-Pfad gibt es eine Datei, die sagt, wo die DB liegt.

Der gleiche User hat auf seinem Desktop zwei Icons,
je eines für jeden Mandanten (das ist genauso gewollt).

Ich habe also 2 Pfade.
Wo soll ich denn den Pfad sonst hinpacken ?

Die Frage war ja, ob das über eine "versteckte Ini"
oder halt ne XML gelöst wird.

Jetzt sieht es so aus,
als ob mein Programm den Wert aus der Ini (der ist als Admin eingetragen)
gar nicht ausliest (Aufgrund der Virtualisierung)


Heiko

Sko 13. Mär 2007 07:53

Re: Vista, TIniFile, Inis im Programmverzeichnis
 
Zitat:

Zitat von hoika
Ich habe also 2 Pfade.
Wo soll ich denn den Pfad sonst hinpacken ?

Könntest du den Pfad nicht als Parameter mitgeben? Dann bräuchtest du nur die Desktopverknüpfungen für jeden Mandanten anpassen und müsstest das Programm nicht kopieren.

Phoenix 13. Mär 2007 07:57

Re: Vista, TIniFile, Inis im Programmverzeichnis
 
Zitat:

Zitat von hoika
Jetzt sieht es so aus,
als ob mein Programm den Wert aus der Ini (der ist als Admin eingetragen)
gar nicht ausliest (Aufgrund der Virtualisierung)

Hast Du etwa den Pfad zur Config-Datei fest verdrahtet?

hoika 13. Mär 2007 08:15

Re: Vista, TIniFile, Inis im Programmverzeichnis
 
Hallo,

nein! :=)

die Config steht im gleichen Verzeichnis wie die Exe.
das Problem ist, dass Vista u.a. Schreibzugriffe auf Inis virtualisiert,
die werden dann ins Anwendungsverzeichnis (Benutzer oder früher "Dokumente und Einstellungen"
gepackt.
Ich werde das mit dem DB-Pfad einfach anderes lösen
(Textdatei, eine Zeile, Endung conf).
Für XML ist keine Zeit.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz