ExpandEnvironmentStrings: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
 
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" _
+
<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</<syntaxhighlight lang="vb">>
+
                 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
+
<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 = <syntaxhighlight lang="vb">NullString
+
     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(<syntaxhighlight lang="vb">NullChar))
+
     strBuffer = Space$(lngBufSize + Len(vbNullChar))
 
     lngBufSize = Len(strBuffer)
 
     lngBufSize = Len(strBuffer)
 
      
 
      
Zeile 43: Zeile 43:
 
      
 
      
 
     '  NullChar wegschneiden
 
     '  NullChar wegschneiden
     lngBufSize = InStr(1&, strBuffer, <syntaxhighlight lang="vb">NullChar)
+
     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</<syntaxhighlight lang="vb">>
+
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.active<syntaxhighlight lang="vb">.de/niaslheMSDN KB123456 - How to use the Mouse]               
+
*[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)