GetUserNameEx: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
Zeile 4: Zeile 4:
  
 
== Deklaration ==
 
== Deklaration ==
<syntaxhighlight lang="vb">
+
<syntaxhighlight lang="<syntaxhighlight lang="vb">">
 
Declare Function GetUserNameEx Lib "secur32.dll" _
 
Declare Function GetUserNameEx Lib "secur32.dll" _
 
                 Alias "GetUserNameExA" ( _
 
                 Alias "GetUserNameExA" ( _
Zeile 34: Zeile 34:
  
 
== Beispiel ==
 
== Beispiel ==
<syntaxhighlight lang="vb">
+
<syntaxhighlight lang="<syntaxhighlight lang="vb">">
 
Dim strBuffer As String
 
Dim strBuffer As String
 
Dim lngBufSize As Long
 
Dim lngBufSize As Long
Zeile 51: Zeile 51:
 
If (lngResult <> 0) Then
 
If (lngResult <> 0) Then
 
     '  Abschließendes NullByte entfernen
 
     '  Abschließendes NullByte entfernen
     lngBufSize = InStr(1, strBuffer, vbNullChar)
+
     lngBufSize = InStr(1, strBuffer, <syntaxhighlight lang="vb">NullChar)
 
     If lngBufSize <> 0 Then
 
     If lngBufSize <> 0 Then
 
         strBuffer = Left$(strBuffer, lngBufSize)
 
         strBuffer = Left$(strBuffer, lngBufSize)
Zeile 57: Zeile 57:
 
Else
 
Else
 
     '  Da liegt wohl ein Fehler vor
 
     '  Da liegt wohl ein Fehler vor
     strBuffer = vbNullString
+
     strBuffer = <syntaxhighlight lang="vb">NullString
 
End If
 
End If
  

Version vom 5. November 2016, 22:10 Uhr


Mit GetUserNameEx können diverse Informationen zum angemeldeten Benutzer ermittelt werden.

Deklaration

">
Declare Function GetUserNameEx Lib "secur32.dll" _
                Alias "GetUserNameExA" ( _
                ByVal NameFormat As EXTENDED_NAME_FORMAT, _
                ByVal lpBuffer As String, _
                ByRef nSize As Long) As Long


Paramter

NameFormat

Element aus EXTENDED_NAME_FORMAT, mit dem festgelegt wird, welche Informationen ermittelt werden sollen.


lpBuffer

Zeichenkette, die die ermittelten Informationen aufnimmt.


nSize

Länge der Zeichenkette, die die ermittelten Informationen aufnimmt.


Rückgabe

War der Aufruf erfolgreich, ist der Wert ungleich 0. Anderenfalls kann der Fehlercode mit Err.LastDLLError ermittelt werden.
Ist die Zeichenkette nicht ausreichend groß, wird die benötigte Größe in nSize übertragen.


Beispiel

">
Dim strBuffer As String
Dim lngBufSize As Long
Dim lngResult As Long

'   Benötigten Speicher ermitteln
lngResult = GetUserNameEx(enfNameSamCompatible, strBuffer, lngBufSize)

'   Speicher bereitstellen
strBuffer = String$(lngBufSize \ 2, &H0&)

'   Informationen auslesen
lngResult = GetUserNameEx(enfNameSamCompatible, strBuffer, lngBufSize)

'   Informationen nachbearbeiten
If (lngResult <> 0) Then
    '   Abschließendes NullByte entfernen
    lngBufSize = InStr(1, strBuffer, <syntaxhighlight lang="vb">NullChar)
    If lngBufSize <> 0 Then
        strBuffer = Left$(strBuffer, lngBufSize)
    End If
Else
    '   Da liegt wohl ein Fehler vor
    strBuffer = <syntaxhighlight lang="vb">NullString
End If

Debug.Print strBuffer


Betriebssysteme

  • ab Windows NT 5.0 (2000)
  • ab Windows CE .NET 4.0


Verwandte Funktionen

GetUserName


Quellen

MSDN Library: GetUserNameEx