1

私はenviron( "username")を使用していましたが、次の場所に移動しました:

Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If (lngX > 0) Then
    fOSUserName = Left$(strUserName, lngLen - 1)
Else
    fOSUserName = vbNullString
End If
End Function

しかし、ドメインが何であるかを確認できるようにしたいのですが、それが実際のドメインなのか、それとも単なるローカルマシン名なのかなど...これは可能ですか?

ドメイン グループやセキュリティ グループなどの設定については既に話し合っているので、これらに関する入力は必要ありません。

4

1 に答える 1

1

ドメイン名を取得する必要がありますEnviron("USERDOMAIN")が、API 宣言を使用する場合は、次のものが必要になります。

Private Declare Function LookupAccountName Lib "advapi32" Alias "LookupAccountNameA" (ByVal lpSystemName As String, _
    ByVal lpAccountName As String, Sid As Byte, cbSid As Long, ByVal DomainName As String, _
    cbDomainName As Long, peUse As Long) As Long

例はここにあります

于 2012-09-10T18:00:26.970 に答える