Application.Username VB6等效

我可以在Excel的VBA编辑器中使用Application.Username来返回当前用户的用户名。 什么是在VB6中的等效?

你可以调用Windows API –

http://msdn.microsoft.com/en-us/library/ms724432(VS.85).aspx

这是我的一个标准库的例程。 我想我包括了你需要的一切。

 Private Const VER_PLATFORM_WIN32_NT = 2 Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 ' Maintenance string for PSS usage' End Type Public Enum EXTENDED_NAME_FORMAT NameUnknown = 0 NameFullyQualifiedDN = 1 NameSamCompatible = 2 NameDisplay = 3 NameUniqueId = 6 NameCanonical = 7 NameUserPrincipal = 8 NameCanonicalEx = 9 NameServicePrincipal = 10 NameDnsDomain = 12 End Enum Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Private Declare Function GetUserNameEx Lib "Secur32.dll" Alias "GetUserNameExA" (ByVal NameFormat As EXTENDED_NAME_FORMAT, ByVal lpNameBuffer As String, ByRef lpnSize As Long) As Long Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long Public Function UserName() As String Dim sBuff As String * 260 Dim lBuffLen As Long Dim Rtn As Long Dim sReturn As String On Error GoTo errUserName lBuffLen = Len(sBuff) sBuff = Space$(lBuffLen) If IsWindows2kOrBetter = True Then Rtn = GetUserNameEx(NameDisplay, sBuff, lBuffLen) Else Rtn = GetUserName(sBuff, lBuffLen) End If If Rtn <> 0 Then sReturn = Left$(sBuff, lBuffLen - 1) Else sReturn = "" End If UserName = sReturn Exit Function errUserName: UserName = "" End Function Public Function IsWindows2kOrBetter() As Boolean Dim blnReturn As Boolean Dim lngRst As Long Dim oVerInfo As OSVERSIONINFO oVerInfo.dwOSVersionInfoSize = Len(oVerInfo) lngRst = GetVersionEx(oVerInfo) If lngRst > 0 Then If oVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT And oVerInfo.dwMajorVersion >= 5 Then blnReturn = True Else blnReturn = False End If Else blnReturn = False End If IsWindows2kOrBetter = blnReturn End Function 

您通常可以使用: Environ$("USERNAME")

TechRepublic有一个很好的快速写作:

确定VB6中的当前用户名

GetUserNameEx是检索Windows用户名的推荐方法。 看到这个线程的第二篇文章为VB6的例子。 http://www.codeguru.com/forum/showthread.php?t=347275