ExpandEnvironmentStrings

Aus API-Wiki
Wechseln zu: Navigation, Suche

Die Funktion ExpandEnvironmentStrings liefert den Inhalt von Umgebungsvariablen zurück.

Declare Function ExpandEnvironmentStrings Lib "kernel32.dll" _
                Alias "ExpandEnvironmentStringsA" ( _
                ByVal lpSrc As String, _
                ByVal lpDst As String, _
                ByVal nSize As Long) As Long


Parameter

lpSrc

Dieser Parameter enthält die Umgebungsvariable, dessen Inhalt zurückgegeben werden soll.

lpDst

Dieser Parameter enthält den Inhalt der Umgebungsvariable nach dem Aufruf der Funktion.

nSize

Dieser Parameter gibt die Größe von lpDst an.

Rückgabe(n)

Diese Funktion liefert die Anzahl der Zeichen zurück, die nach lpDst geschrieben wurden oder, falls lpDst nicht ausreichend groß dimensioniert war, geschrieben werden müssen.

Beispiel

Public Function ExpandEnvironmentString(ByVal strEnv As String) As String
    Dim strBuffer As String
    Dim lngBufSize As Long
    
    '   Größe des benötigten Speichers ermitteln
    strBuffer = vbNullString
    lngBufSize = Len(strBuffer)
    lngBufSize = ExpandEnvironmentStrings(strEnv, Byval 0&, lngBufSize)
    
    '   entsprechend großen Speicher bereitstellen
    strBuffer = Space$(lngBufSize + Len(vbNullChar))
    lngBufSize = Len(strBuffer)
    
    '   Daten holen
    lngBufSize = ExpandEnvironmentStrings(strEnv, strBuffer, lngBufSize)
    
    '   NullChar wegschneiden
    lngBufSize = InStr(1&, strBuffer, vbNullChar)
    If lngBufSize <> 0& Then
        strBuffer = Left$(strBuffer, lngBufSize - 1&)
    End If
    
    '   Fertig
    ExpandEnvironmentString = strBuffer
End Function

Public Sub Main
    Debug.Print ExpandEnvironmentString("%windir%\system32")
End Sub

Hinweise

Die Umgebungsvariable muß in Prozentzeichen verpackt werden. Wie im Beispiel zu sehen ist, kann lpSrc beliebigen Text enthalten, die Funktion sorgt dafür, daß die Umgebungsvariable nur durch ihren Inhalt ersetzt wird, der Rest bleibt erhalten.

Betriebsystem

Die Funktion ist unter folgenden Betriebssystemen funktionsfähig:

  • Windows NT 3.1 und neuer
  • Windows 95 und neuer

Quelle(n)