I am using this procedure that I got from somewhere here on the PB-forum
Code: Select all
Procedure IsUserAnAdministrator()
Protected IsMember, *AdministratorsGroup
Structure NtAuthority
NtAuthority.b[6]
EndStructure
Define SECURITY_NT_AUTHORITY.NtAuthority
If OpenLibrary(advapi32, "advapi32.dll")
CheckTokenMembership = GetFunction(advapi32, "CheckTokenMembership")
If CheckTokenMembership
AllocateAndInitializeSid = GetFunction(advapi32, "AllocateAndInitializeSid")
If AllocateAndInitializeSid
FreeSid = GetFunction(advapi32, "FreeSid")
If FreeSid
SECURITY_NT_AUTHORITY\NtAuthority[5]=5
; The AllocateAndInitializeSid function allocates and initializes a security identifier (SID) with up to eight subauthorities.
If AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, #SECURITY_BUILTIN_DOMAIN_RID, #DOMAIN_ALIAS_RID_ADMINS, #Null, #Null, #Null, #Null, #Null, #Null, @*AdministratorsGroup)
CheckTokenMembership(#Null, *AdministratorsGroup, @IsMember)
EndIf
FreeSid(*AdministratorsGroup)
EndIf
EndIf
EndIf
CloseLibrary(advapi32)
EndIf
ProcedureReturn IsMember
EndProcedure
If IsUserAnAdministrator()= #False : MessageRequester("!","no Admin privileges")
EndIf
Apparently I am doing something wrong. But what?