|
Die API-Funktion GetUserName liefert Ihnen den Namen des gerade angemeldeten Benutzers. Allerdings ist diese Funktion im typischen C-Stil gehalten - sie erwartet einen vorgegebenen String, den sie mit dem Ergebnis füllen kann, und dazu die Länge dieses Strings.
Das tatsächlich in diesem String zurückgegebene Ergebnis wird durch ein Null-Zeichen (Chr$(0) bzw. Visual Basic-Konstante vbNullChar) markiert, wenn das Ergebnis kürzer als der übergebene String ist. Sie müssen daher abschließend noch den String ab dieser Stelle abschneiden.
Die Ermittlung des Benutzernamens können Sie als Get-Eigenschaften-Prozedur in einem Standard-Modul anlegen.
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Public Property Get UserName() As String
Dim nBuffer As String
Dim nRet As Long
Dim nPos As Integer
Const kBufferLength = 255
nBuffer = Space$(kBufferLength)
nRet = GetUserName(nBuffer, kBufferLength)
If CBool(nRet) Then
nPos = InStr(nBuffer, vbNullChar)
If nPos Then
UserName = Left$(nBuffer, nPos - 1)
Else
UserName = nBuffer
End If
End If
End Property
|