Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Delphi 2007] Wo INI Dateien unter Vista speichern ? (https://www.delphipraxis.net/107208-%5Bdelphi-2007%5D-wo-ini-dateien-unter-vista-speichern.html)

winx 24. Jan 2008 06:45


[Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Guten Morgen,

wir portieren gerade unsere alten Anwendung auf Windows Vista. Ich hab mal irgendwo gelesen, dass Programme
unter Vista ihre zur Laufzeit veränderbaren Daten (bei uns INI Dateien und Excel Files) nicht mehr im Programmordner
(C:\Programme\...\) ablegen dürfen.

In welchem Ordner sollte man diese dann unter Vista ablegen (Gibt es unter XP auch den entsprechenden Ordner?), gibt
es diesen Ordner irgendwie in den Systempfaden?

Danke,
winx

mkinzler 24. Jan 2008 06:57

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Eigentlich gilt dieser Grundsatz schon länger, nur sorgt die Virtualisierung/dateiumleitung von Vista nun zu Nebeneffekten.
Allgemeingültige Ini-dateien gehären unter ALLUSERS benutzerbezogene ins Benutzerprofil.
Diese Special Folders kannst du ermitteln.

Phoenix 24. Jan 2008 06:59

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Richtige Antwort auf die Frage im Titel: Gar nicht mehr.
Man sollte keine INI-Dateien mehr benutzen. Besser sind XML-Konfigurationsdateien. Aber das ist nur ein Detail ;-)

Zur Frage:
Ich halte es folgendermassen:

Konfigurationseinstellungen, die NUR ein Admin verändern darf: In eine XML-Konfig in das Anwendungsverzeichnis. Hier kann man sich sicher sein, dass der User nicht an den wichtigen Parametern schrauben darf. Bei Dir dann halt wohl weiterhin eine .ini hierhin.

Konfigurationseinstellungen und Daten, die für alle Benutzer gelten, die aber auch von allen Benutzern geändert werden dürfen in 'Gemeinsame Dateien'.

Einstellungen und Daten die Benutzerspezifisch sind: Ab in das Benutzerprofil unter Eigene Dateien.


Wichtig zu Punkt 1 ist noch: Die Anwendung muss für Vista über ein gültiges Manifest verfügen, so dass die Dateisystemvirtualisierung definitiv nicht aktiv ist. Sonst 'darf' der User nämlich die Dateien im Programme-Ordner 'ändern', nur landet die Änderung eben nicht dort sondern in einem Virtualisierungsordner in seinem Pfil, aber dennoch wird die geänderte Datei gelesen.

winx 24. Jan 2008 07:16

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Hallo,

danke für die Antworten.

Noch ne Frage (such aber schon selber): gibt es in XP und Vista gemeinsame Pfadvariablen?


Also welchen "Key" brauch ich um bspw den AllUsers Ordner zu finden? Ist es "CSIDL_APPDATA"?

Danke,
winx

hitzi 24. Jan 2008 07:20

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Zitat:

Zitat von Phoenix
[...]Einstellungen und Daten die Benutzerspezifisch sind: Ab in das Benutzerprofil unter Eigene Dateien.[...]

MÖÖÖÖP! Einspruch :-D

Nicht in die Eigenen Dateien! Der Ordner ist für den Benutzer und seine selber(!) erstellten Dateien gedacht und nicht für irgendwelche Programm Dateien und wenn es nur Einstellungsdateien sind. Dazu gibt es das AppData Verzeichnis!


Siehe auch: http://www.delphipraxis.net/internal_redirect.php?t=502
Zusätzliche CSIDLs: http://msdn2.microsoft.com/en-us/library/bb762494.aspx

Hier wird auch schön auf die Problematik "Programmdateien in den Eigenen Dateien" eingegangen: http://www.codinghorror.com/blog/archives/001032.html

winx 24. Jan 2008 07:33

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Hi,

also welchen Ordner soll ich denn nun für Dateien verwenden, der unter beiden BS funzt.

"CSIDL_COMMON_DOCUMENTS" ???

gruß,
winx

Bernhard Geyer 24. Jan 2008 07:39

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Zitat:

Zitat von hitzi
Nicht in die Eigenen Dateien! Der Ordner ist für den Benutzer und seine selber(!) erstellten Dateien gedacht und nicht für irgendwelche Programm Dateien und wenn es nur Einstellungsdateien sind.

Ist doch mittlerweile selbst MS sch... egal. Ich habe hier z.B. die beiden Ordner "SQL Server Management Studio" und "Visual Studio 2005" sowie "Remote Assistance Logs". Wir selbst verwenden für Userspezifische Dateien auch "Eigene Dateien" da es das einzige Verzeichnis ist das seit Win9x existiert und (fast) keine Probleme bereitet. Aber die letzte Erweiterung war dies bei der Installation bzw. konfiguration der Installation freier zu gestalten.

hitzi 24. Jan 2008 07:42

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Und bloß weil es MS macht müssen wir es auch machen? Aber egal ... das wird zu OT.

Ich würd CSIDL_APPDATA (Benutzerspezifisch) oder CSIDL_COMMON_APPDATA (für alle Benutzer) verwenden.

Bernhard Geyer 24. Jan 2008 07:45

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
Hat sich nicht irgendeine dieser Konstanten in der bedeutung geändert bzw. gibt es denn die u.U. nicht unter alten Windows-Versionen?

ich denke ein mehrstufiger Ansatz der Art:

- AppData-Verzeichnis vorhanden und verfügbar?
- Falls nein: Schreibbar in Anwendungsverzeichnis?
- Falls nein: Schreibbar in Windows-Verzeichnis?
- Falls nein: Unterverzeichnis in "Dokumente und Einstellungen" erstellbar und schreibbar?
- Falls nein: Programmende mit Fehlermeldung

wird u.U. nötig sein um nicht nur Vista/XP zu unterstützen.

hitzi 24. Jan 2008 08:18

Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
 
CSIDL_APPDATA funktioniert ab Win98! Bei Win95 einfach über die Registry -> HKLM\Software\Microsoft\Windows\Currentversion\Pro gramFilesDir <- das Programmverzeichnis ermitteln und "Application Data" dran hängen, aber da kannst du auch gleich ins eigene Programmverzeichnis schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.
Seite 1 von 3  1 23      

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