Application.Username VB6 Эквивалент - PullRequest
2 голосов
/ 14 августа 2010

Я могу использовать Application.Username в редакторе VBA Excel, чтобы вернуть имя пользователя текущего пользователя. Что эквивалентно в VB6?

Ответы [ 6 ]

2 голосов
/ 14 августа 2010

Вот процедура из одной из моих стандартных библиотек.Я думаю, что я включил все, что вам нужно.

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
2 голосов
/ 14 августа 2010

Вы можете вызвать Windows API -

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

1 голос
/ 17 августа 2010

Обычно вы можете использовать: Environ$("USERNAME")

0 голосов
/ 14 августа 2010

GetUserNameEx - рекомендуемый способ получения имени пользователя Windows. Смотрите второй пост в этой теме для примера VB6. http://www.codeguru.com/forum/showthread.php?t=347275

0 голосов
/ 14 августа 2010
0 голосов
/ 14 августа 2010

TechRepublic имеет хорошую быструю запись на это:

Определение текущего имени пользователя в VB6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...