Entwickler-Ecke
Dateizugriff - Systemvariable "TEMP" auflösen
AScomp - Fr 08.01.16 20:52
Titel: Systemvariable "TEMP" auflösen
Hallo,
bin gerade etwas verblüfft, dass ich nach fast 30-minütiger Suche keine Funktion finden kann, mit der man die Systemvariable "TEMP" auflösen kann.
Zur Erklärung: Ich möchte den Temp-Ordner des Systems ermitteln (NICHT den des Benutzers, siehe Anhang). Standardmäßig liegt der unter "C:\Windows\Temp\", aber über die Umgebungsvariablen kann das jeder Benutzer anpassen.
Mit
Delphi-Quelltext
1:
| ExpandEnvironmentStrings(PChar('%temp%'), PChar(result), MAX_PATH); |
kann ich die Umgebungsvariable des Benutzers auslesen, aber eben NICHT die Systemvariable.
Hat da jemand eine Idee?
Danke und viele Grüße
Andy
Delete - Sa 09.01.16 00:21
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| function ExpandEnvStr(const szInput: string): string; const MAXSIZE = 32768; begin SetLength(Result,MAXSIZE); SetLength(Result,ExpandEnvironmentStrings(pchar(szInput), @Result[1],length(Result))-1); end;
procedure TForm1.ButtonClick(Sender: TObject); var s : String; begin with TRegistry.Create(KEY_READ) do try RootKey := HKEY_LOCAL_MACHINE; if OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment\', False) then begin if ValueExists('Temp') then begin s:= ReadString('Temp'); Memo1.Lines.Add(ExpandEnvStr(s)); end; end; finally CloseKey; Free; end; end; |
AScomp - Sa 09.01.16 01:13
Hallo,
danke dir - den Weg über die Registry hatte ich mir auch bereits überlegt, ging aber stark davon aus, dass es dafür eine API geben müsste.
In jedem Fall, ganz herzlichen Dank!
Gruß
Andy
Delete - Sa 09.01.16 17:35
(KEY_READ) noch hinzugefügt, sonst braucht man Admin-Rechte...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!