Hallo,
für ein Programm muss ich prüfen, ob es vom Temp-Verzeichnis aus gestartet wird. Dadurch ermittel ich erst das Temp-Verzeichnis und dann das Application-Verzeichnis:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| TempDir = GetTempDir; AppDir := ExtractFilePath(ParamStr(0));
function GetTempDir: string; var Dir: PChar; begin Result := '';
Dir := StrAlloc(MAX_PATH + 1); GetTempPath(MAX_PATH, Dir);
Result := IncludeTrailingPathDelimiter(Dir); end; |
Dann prüfe ich, ob (TempDir <> AppDir) ist. Unter XP, 2000 funktioniert das auch. Unter Vista habe ich allerdings das Problem, dass die Werte für die Verzeichnisse unterschiedlich sind, obwohl die Verzeichnisse gleich sind (also die Applikation aus dem Temp-Verzeichnis gestartet wird).
TempDir = C:\Users\S4A74~1.MUE\AppData\Local\Temp\
AppDir = C:\Users\s.mueller\AppData\Local\Temp\
Daher stehe ich jetzt was auf dem Schlauch, wie ich das Problem unter Vista in den Griff kriege. Hat von euch da jemand eine Idee? Bin für jeden Tipp dankbar.
Stefan