Dein Tipp war Gold wert! So geht es! Zwar rödelt das Programm ein paar Sekunden, aber dann spuckt er den Usernamen aus! Klasse!!CNESM,
ein weiterer möglicher Versuch: bitte ändere in jpds letztem Beispiel einmal "USERDOMAIN" in "USERDNSDOMAIN" ab...
Code: Alles auswählen
EnableExplicit
Define NameLength.I
Define Result.I
Define SID.S
Define SIDSize.I
Define SIDType.I
Define UserIDA.S
Define UserIDW.S
Define UserName.S
Define UserInfoPointer.I
Define *UserInfo.USER_INFO_3
Define DomainIDA.s
Define DomainLength.l
Define DomainIDW.s
UserIDA = Space(128)
NameLength = Len(UserIDA)
DomainIDA = Space(128)
DomainLength = Len(DomainIDA)
If InitNetwork()
If GetUserName_(@UserIDA, @NameLength)
Debug "User-ID = " + UserIDA
DomainIDA = GetEnvironmentVariable("USERDNSDOMAIN")
UserIDW = Space(256)
DomainIDW = Space(256)
CompilerIf #PB_Compiler_Unicode
DomainIDW=DomainIDA
UserIDW=UserIDA
CompilerElse
MultiByteToWideChar_(#CP_ACP, #MB_PRECOMPOSED, @UserIDA, -1, @UserIDW, Len(UserIDW))
MultiByteToWideChar_(#CP_ACP, #MB_PRECOMPOSED, @DomainIDA, -1, @DomainIDW, Len(DomainIDW))
CompilerEndIf
Result = NetUserGetInfo_(@DomainIDW, @UserIDW, 3, @UserInfoPointer)
*UserInfo = UserInfoPointer
If Result = 0 And *UserInfo <> 0
If *UserInfo\FullName <> 0
UserName = Space(256)
CompilerIf #PB_Compiler_Unicode
UserName = PeekS(*UserInfo\FullName)
CompilerElse
WideCharToMultiByte_(#CP_ACP, 0, *UserInfo\FullName, 128, @UserName, Len(UserName), 0, 0)
CompilerEndIf
Debug "User-Name = " + UserName
EndIf
EndIf
NetApiBufferFree_(*UserInfo)
EndIf
EndIf