0001 Benutzernamen ermitteln
![]() | Oft ist es wichtig, erst recht bei Applikationen im Netzwerk, den Benutzernamen zu Laufzeit zu ermitteln. Das geht - wie sollte es auch anders sein - mal wieder mit einer API-Funktion. Um den Namen später in einem VB-String verwalten zu können muss nach der Ermittlung unbedingt das für die C-Programmierung typische NullByte am Ende des Rückgabe-Strings entfernt werden, ausserdem muss der Rückgabestring (hier: Buffer) zuvor mit Leerzeichen als Platzhalter gefüllt sein. Statt einen leeren String mit der Funktion Space$(255) mit 255 Leerzeichen zu füllen deklariere ich gleich einen entsprechenden String: Dim Buffer As String * 255
' Deklaration:
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
' Funktionen:
Public Function UserName() As String
Dim Buffer As String * 255
If (GetUserName(Buffer, Len(Buffer)) = 1) Then
UserName = nullTrim(Buffer)
Else
UserName = ""
End If
End Function
' Entfernt die lästigen Null-Bytes, die von diversen
' API-Funktionen bei Stringrückgaben übergeben werden:
Public Function nullTrim(ByVal s As String) As String
Dim p As Long
p = InStr(s, vbNullChar)
If p > 0 Then
nullTrim = Left$(s, p - 1)
Else
nullTrim = s
End If
End Function
' Aufruf:
Dim glbUserName As String
glbUserName = UserName
Autor: ralf schlegel |
0002 Computernamen ermitteln
![]() | Oft ist es wichtig, erst recht bei Applikationen im Netzwerk, den Rechnernamen zu Laufzeit zu ermitteln. Das geht - wie sollte es auch anders sein - mal wieder mit einer API-Funktion. Um den Namen später in einem VB-String verwalten zu können muss nach der Ermittlung unbedingt das für die C-Programmierung typische NullByte am Ende des Rückgabe-Strings entfernt werden, ausserdem muss der Rückgabestring (hier: Buffer) zuvor mit Leerzeichen als Platzhalter gefüllt sein. Statt einen leeren String mit der Funktion Space$(255) mit 255 Leerzeichen zu füllen deklariere ich gleich einen entsprechenden String: Dim Buffer As String * 255
' Deklaration:
Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
' Funktionen:
Public Function ComputerName() As String
Dim Buffer As String * 255
If (GetComputerName(Buffer, Len(Buffer)) = 1) Then
ComputerName = nullTrim(Buffer)
Else
ComputerName = ""
End If
End Function
' Entfernt die lästigen Null-Bytes, die von diversen
' API-Funktionen bei Stringrückgaben übergeben werden:
Public Function nullTrim(ByVal s As String) As String
Dim p As Long
p = InStr(s, vbNullChar)
If p > 0 Then
nullTrim = Left$(s, p - 1)
Else
nullTrim = s
End If
End Function
' Aufruf:
Dim glbCompName As String
glbCompName = ComputerName
Autor: ralf schlegel |



