Note this codes about 6 years old as of 2014 – I’m sure there are better ways of doing this now but this worked at the time and is still live in one of my projects.
I needed to identify the currently logged on user running my application to make an audit file and also show only user options that the logged on user was setup for.
Here’s the code…
Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, _
ByRef nSize As Integer) As Integer
Public Function GetUserName() As String
'Gets currently logged on user - username
Dim iReturn As Integer
Dim userName As String
'put the username in a string limit 50 chars
userName = New String(CChar(" "), 50)
'put the length of the username in an Integer iReturn
iReturn = GetUserName(userName, 50)
'Tidy up various formatting if required with the replace function like remove the .
userName = userName.Replace("."c, " "c)
'Return the username back
GetUserName = userName.Substring(0, userName.IndexOf(Chr(0)))
End Function