Frage

Ich suche einen akzeptablen Ausgangspunkt für die Platzierung von Anwendungseinstellungen in einem Windows -Computer. Ich habe mehr als eine Anwendung. Aus persönlichen Gründen möchte ich die Registrierung nicht verwenden: Ich bevorzuge Klartextinitialisierungsdateien (.ini). Ich habe auch keine Lust, die Dateien im selben Verzeichnis zu halten wie die ausführbaren Dateien. Die ideale Situation ermöglicht es mir, sie an einem allgemeinen Ort zu halten, in dem Benutzer oder Systemadministratoren schreiben dürfen.

Richtig, ich bin kein Windows -Benutzer, meine erste Vermutung wäre $HOME/.my_company_name und /etc/my_company_name, aber gibt es etwas konzeptionell mit diesen Orten in Windows?

Ich schaue nur in die SET Ausgabe und Vermutung:

%APPDATA%
%HOMEDRIVE%%HOMEPATH%\Local Settings
%SYSTEMROOT%

Übrigens: Ich muss noch überprüfen, ob diese Variablen noch aus einem Windows -Dienst existieren ...

War es hilfreich?

Lösung

Ich denke, AppData ist das, was Sie wollen.

Sie können shGetFolderPath (von ShFolder.dll) verwenden, um dies programmgesteuert zu erhalten.

Aus MSDN 'Daten- und Einstellungsverwaltung' (Siehe Abschnitt 4.2 'Klassifizierende und korrekte Anwendungsdaten'):

TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);

Anhängen [company name]\[product name]\[version] nach Szappdata mit PathAppend:

PathAppend(szAppData, "Company\Product\1.0\File.ini")

Es gibt auch CSIDL_COMMON_APPDATA für nicht userspezifische Daten und CSIDL_LOCAL_APPDATA Für nicht Roaming -Daten (Daten, die nicht über das Netzwerk kopiert werden sollten, wenn sich Benutzer an einem anderen Computer anmelden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top