''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
' applications, but you may not reproduce
' or publish this code on any web site,
' online service, or distribute as source
' on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Const MAX_USERNAME As Long = 15
Private Declare Function GetUserName Lib "advapi32" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Declare Function lstrlenW Lib "kernel32" _
(ByVal lpString As Long) As Long
Private Function GetThreadUserName() As String
'Retrieves the user name of the current
'thread. This is the name of the user
'currently logged onto the system. If
'the current thread is impersonating
'another client, GetUserName returns
'the user name of the client that the
'thread is impersonating.
Dim buff As String
Dim nSize As Long
buff = Space$(MAX_USERNAME)
nSize = Len(buff)
If GetUserName(buff, nSize) = 1 Then
GetThreadUserName = TrimNull(buff)
Exit Function
End If
End Function
Private Function TrimNull(startstr As String) As String
TrimNull = Left$(startstr, lstrlenW(StrPtr(startstr)))
End Function
|