Seite 1 von 1
(WinAPI) TEMP-Pfad ermitteln
Verfasst: 29.08.2004 06:09
von Danilo
Frage:
Wie kann ich mit PB den Temp-Pfad des OS ermitteln.
Leider ist der Temp-Pfad von Win95 bis XP standardmässig unterschiedlich.
Wer weiß Rat??
Antwort:
Das kannst Du ganz einfach mit einer kleinen Prozedur erledigen:
Code: Alles auswählen
Procedure.s GetTempPath()
A$ = Space(1024)
GetTempPath_(1024,@A$)
ProcedureReturn A$
EndProcedure
MessageRequester("INFO","Temp: "+GetTempPath(),0)
Verfasst: 10.10.2005 00:45
von AND51
Funzt!
Danke!
Aber wieso kommt der Pfad bei mir unter WinXP SP2 noch im 8.3 dateiFormat?
Bei mir siehts so aus:
C:\DOKUME~1\ANDR~1\LOKALE~1\Temp
Geht das nicht auch so:
C:\Dokumente und EInstellungen\André\Lokale Einstellungen\Temp ???
Wäre das nicht besser? Und kompatibel mit Win95 oder Win98 bis WinXP ?
Naja, Gurß AND51
Verfasst: 10.10.2005 00:49
von AND51
Oder geht das nicht gleich, indem ich die Umgebungsvariable
%TEMP%
benutze?
Verfasst: 10.10.2005 01:14
von ts-soft
Erweiterte Version für AND51:
Code: Alles auswählen
Procedure.s GetLongPathName(File.s)
DLL = OpenLibrary(#PB_Any, "Kernel32.dll")
If DLL
CallFunction(DLL,"GetLongPathNameA", @File, @File, #MAX_PATH)
CloseLibrary(DLL)
ProcedureReturn File
EndIf
EndProcedure
Procedure.s GetTempPath()
A$ = Space(1024)
GetTempPath_(1024,@A$)
ProcedureReturn A$
EndProcedure
MessageRequester("INFO","Temp: "+GetLongPathName(GetTempPath()),0)
Oder per %TEMP%
Code: Alles auswählen
Procedure.s GetEnv(szVariable.s)
Protected Length.l, Buffer.s
Length = GetEnvironmentVariable_(@szVariable, @Buffer, 0)
If Length
Buffer = Space(Length)
GetEnvironmentVariable_(@szVariable, @Buffer, Length)
ProcedureReturn Buffer
EndIf
ProcedureReturn ""
EndProcedure
MessageRequester("Environment", GetEnv("TEMP"))
was ich aber nicht für so empfehlenswert halte