ExpandEnvironmentStrings: Unterschied zwischen den Versionen
Aus API-Wiki
Zeile 2: | Zeile 2: | ||
Die Funktion ExpandEnvironmentStrings liefert den Inhalt von Umgebungsvariablen zurück. | Die Funktion ExpandEnvironmentStrings liefert den Inhalt von Umgebungsvariablen zurück. | ||
− | + | <syntaxhighlight lang="vb">Declare Function ExpandEnvironmentStrings Lib "kernel32.dll" _ | |
Alias "ExpandEnvironmentStringsA" ( _ | Alias "ExpandEnvironmentStringsA" ( _ | ||
ByVal lpSrc As String, _ | ByVal lpSrc As String, _ | ||
ByVal lpDst As String, _ | ByVal lpDst As String, _ | ||
− | ByVal nSize As Long) As Long</ | + | ByVal nSize As Long) As Long</syntaxhighlight> |
Zeile 26: | Zeile 26: | ||
==Beispiel== | ==Beispiel== | ||
− | + | <syntaxhighlight lang="vb">Public Function ExpandEnvironmentString(ByVal strEnv As String) As String | |
Dim strBuffer As String | Dim strBuffer As String | ||
Dim lngBufSize As Long | Dim lngBufSize As Long | ||
' Größe des benötigten Speichers ermitteln | ' Größe des benötigten Speichers ermitteln | ||
− | strBuffer = | + | strBuffer = vbNullString |
lngBufSize = Len(strBuffer) | lngBufSize = Len(strBuffer) | ||
lngBufSize = ExpandEnvironmentStrings(strEnv, Byval 0&, lngBufSize) | lngBufSize = ExpandEnvironmentStrings(strEnv, Byval 0&, lngBufSize) | ||
' entsprechend großen Speicher bereitstellen | ' entsprechend großen Speicher bereitstellen | ||
− | strBuffer = Space$(lngBufSize + Len( | + | strBuffer = Space$(lngBufSize + Len(vbNullChar)) |
lngBufSize = Len(strBuffer) | lngBufSize = Len(strBuffer) | ||
Zeile 43: | Zeile 43: | ||
' NullChar wegschneiden | ' NullChar wegschneiden | ||
− | lngBufSize = InStr(1&, strBuffer, | + | lngBufSize = InStr(1&, strBuffer, vbNullChar) |
If lngBufSize <> 0& Then | If lngBufSize <> 0& Then | ||
strBuffer = Left$(strBuffer, lngBufSize - 1&) | strBuffer = Left$(strBuffer, lngBufSize - 1&) | ||
Zeile 54: | Zeile 54: | ||
Public Sub Main | Public Sub Main | ||
Debug.Print ExpandEnvironmentString("%windir%\system32") | Debug.Print ExpandEnvironmentString("%windir%\system32") | ||
− | End Sub</ | + | End Sub</syntaxhighlight> |
==Hinweise== | ==Hinweise== | ||
Zeile 77: | Zeile 77: | ||
*ActiveVB Tipp 123: (Auf jeden Fall mit Link) <br> | *ActiveVB Tipp 123: (Auf jeden Fall mit Link) <br> | ||
*Microsoft Knowledge-Base KB123456 (Wenn möglich mit Link) <br> | *Microsoft Knowledge-Base KB123456 (Wenn möglich mit Link) <br> | ||
− | *[http://www. | + | *[http://www.activevb.de/niaslheMSDN KB123456 - How to use the Mouse] |
*Allapi.net Tipp xxx | *Allapi.net Tipp xxx | ||
Aktuelle Version vom 5. November 2016, 23:47 Uhr
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)