;Autor: ts-soft ;http://www.purebasic.fr/german/viewtopic.php?p=244662#p244662 EnableExplicit Prototype ConvertSidToStringSid(*Sid, *StringSid) Procedure.s GetUserName() Protected User.s = "", Size.l = 0 If Not GetUserName_(@User, @Size) User = Space(Size) If GetUserName_(@User, @Size) ProcedureReturn User EndIf EndIf EndProcedure Procedure.s GetUserSid() Protected Sid.s, ReferencedDomainName.s, result.s Protected UserName.s = GetUserName() Protected cbSid, cchReferencedDomainName, SidType = #SidTypeUser, DLL Protected ConvertSidToStringSid.ConvertSidToStringSid Protected *StringSid DLL = OpenLibrary(#PB_Any, "advapi32.dll") If DLL ConvertSidToStringSid = GetFunction(DLL, "ConvertSidToStringSidW") If ConvertSidToStringSid LookupAccountName_(#Null, @UserName, #Null, @cbSid, @ReferencedDomainName, @cchReferencedDomainName, @SidType) If cbSid And cchReferencedDomainName Sid = Space(cbSid) : ReferencedDomainName = Space(cchReferencedDomainName) If LookupAccountName_(#Null, @UserName, @Sid, @cbSid, @ReferencedDomainName, @cchReferencedDomainName, @SidType) If IsValidSid_(@Sid) ConvertSidToStringSid(@Sid, @*StringSid) result.s = PeekS(*StringSid, -1, #PB_Unicode) LocalFree_(*StringSid) EndIf EndIf EndIf EndIf CloseLibrary(DLL) EndIf ProcedureReturn result EndProcedure MessageRequester("", "Benutzer-SID: " + GetUserSid(), 0) ; IDE Options = PureBasic 5.31 (Windows - x64) ; CursorPosition = 2 ; Folding = - ; EnableUnicode ; EnableXP ; EnableUser ; EnableCompileCount = 0 ; EnableBuildCount = 0