![]() |
[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 |
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. |
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. |
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 |
Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
Zitat:
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: ![]() Zusätzliche CSIDLs: ![]() Hier wird auch schön auf die Problematik "Programmdateien in den Eigenen Dateien" eingegangen: ![]() |
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 |
Re: [Delphi 2007] Wo INI Dateien unter Vista speichern ?
Zitat:
|
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. |
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. |
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. |
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