hi
hab leider kein windows NT 4 und auch keine Domäne darum kann ich es nicht testen aber hier meine 2 lösungsvorschläge:
- Es gibt eine SystemVariable dort steht der Domänenname drin.
cmd starten „set“ eingeben und mal nachgucken welche variable dafür geeignet ist. dann in vb mit environ(„MYVAR“) kannst du es rauslesen
oder:
- dieser API gibt DOMAIN\User zurück. dann kannst du \user abschneiden und bist auch beim resultat
Option Explicit
Private Declare Function GetUserNameEx Lib „secur32.dll“ Alias „GetUserNameExA“ (ByVal NameFormat As Long, ByVal lpBuffer As String, nSize As Long) As Long
Private Enum eDomainNTUserType
eDNTU_NameUnknown = 0
eDNTU_NameFullyQualifiedDN = 1
eDNTU_NameSamCompatible = 2
eDNTU_NameDisplay = 3
eDNTU_NameUniqueId = 6
eDNTU_NameCanonical = 7
eDNTU_NameUserPrincipal = 8
eDNTU_NameCanonicalEx = 9
eDNTU_NameServicePrincipal = 10
End Enum
Public Function GetDomainNTUserName() As String
Dim sBuffer As String
Dim lSize As Long
Dim lRV As Long
On Error GoTo ErrHandler
lSize = 255
sBuffer = String(lSize, &H0)
lRV = GetUserNameEx(CLng(eDNTU_NameSamCompatible), sBuffer, lSize)
If lRV 0 Then
'successful
sBuffer = Left(sBuffer, lSize)
Else
sBuffer = „“
End If
GetDomainNTUserName = sBuffer
Exit Function
ErrHandler:
Select Case Err.Number
Case Else
Err.Raise Err.Number, Err.Source & „+AmeliaGenUtil\CNTUserInfo\GetDomainNTUserName“, Err.Description
End Select
End Function
Private Sub Form_Load()
MsgBox GetDomainNTUserName
End Sub
gruss
giuseppe