HOMEPATH und APPDATA verwenden?



  • Hallo.

    Ich möchte gern Daten unter meinen %HOMEPATH% (\Users\Username) speichern und auslesen, aber wie genau geht das? Hat hierfür jemand ein Beispiel?

    Ich öffne und speichere Daten mit _wrtl_open, _rtl_read und _rtl_write (in meinem Fall). Im Ordner meines Programms klappt das prima. Den Pfad erstelle ich so:

    FileName = UnicodeString().sprintf(L"%s\\daten\%s\\file.txt", ExtractFilePath(ParamStr(0)), UserName);

    Wenn ich es aber jetzt unter "C:\Benutzer" verwalten möchte, muss ich das einfach so ändern? (Kann es leider gerade nicht testen)

    FileName = UnicodeString().sprintf(L"%%HOMEPATH%%\\file.txt");

    Kennt sich jemand hiermit aus?



  • %Homepath% ist eine Umgebungs-Variable, dessen Inhalt kann du mit GetEnvironmentVariable auslesen.

    https://msdn.microsoft.com/de-de/library/windows/desktop/ms683188(v=vs.85).aspx



  • Danke, dass klappt super.

    Edit1->Text = GetEnvironmentVariable("HOMEPATH");
    

    So kann man auch USERNAME etc schön auslesen. Wen es interessiert was es da so gibt, einfach in der Windows-Konsole (cmd.exe) "SET" eingeben.



  • Minki schrieb:

    So kann man auch USERNAME etc schön auslesen

    Äh, nein, dafür nimmt man GetUserName(), wie man auch alle anderen Informationen lieber über irgendwelche Systemfunktionen bezieht statt über Umgebungsvariablen (z.B. das Benutzerverzeichnis über SHGetKnownFolderPath() mit [url=https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457%28v=vs.85%29.aspx] `

    FOLDERID_Profile` [/url]). Die Umgebungsvariablen kann nämlich der Aufrufer deines Programms nach Belieben ändern.


Log in to reply