Option Explicit
' ---------------------------------------------------------
' Funktion FindTemp
' Eingestellt von: Andre Schau
' Datum: 5. Juno 2006
' Kommentar: Funktion zur Ermittlung des temporaeren
' Userverzeichnisses
' Parameter: siehe API-Argumente
' Rückgabe: Pfadangabe
'
' weitere benoetigte Programme und Funktionen
' API-Funktion: GetTempPath
' Aufruf: Beispiel siehe Sub callFindTemp()
' Hinweis: Bedingte Kompilierung fuer 32 / 64 bit Systeme
' ---------------------------------------------------------
#If VBA7 Then
Declare PtrSafe Function GetTempPath Lib "kernel32" Alias _
"GetTempPathA" (ByVal nBufferLength As LongPtr, ByVal _
lpBuffer As String) As LongPtr
#Else
Declare Function GetTempPath Lib "kernel32" Alias _
"GetTempPathA" (ByVal nBufferLength As Long, ByVal _
lpBuffer As String) As Long
#End If
'Konstante fuer maximale Laenge der Pfadangabe
Public Const MAX_PATH = 260
Sub callFindTemp()
'Variablendeklarartion
'String
Dim strPath$
'Temporaeres Verzeichnis ermitteln
strPath = FindTemp
'Meldung temporaeres Verzeichnis ausgeben
MsgBox strPath
End Sub
Private Function FindTemp() As String
'Variablendeklarartion
'Long
Dim Result&
'String
Dim Buff$
'Leerstring bilden
Buff = Space$(MAX_PATH)
'temporaeren Pfad mit API ermitteln
'Result ergibt Laenge des Pfadnamens
'bea: Funktion liefert CHR(0) am Ende
' des Pfadnamens
Result = GetTempPath(Len(Buff), Buff)
'buff auf Pfadangabe kuerzen und als
'Funktionsergebnis zurueckgeben
FindTemp = Left$(Buff, Result)
End Function