篆体字作品 | 篆体字知识 | 加入收藏 篆体字转换器软件可转换多种篆体字在线预览 网页版 V2.0
篆体字转换器

当前位置:篆体字网 > 知识库 >

ntauthority

时间:2023-12-27 16:51:38 编辑:篆字君 来源:篆体字网

网上没有找到Delphi的,直接动手写出来,Delphi Xe2 测试通过。CSDN第一次写,以后有什么资料直接发上来共享。

type
TCheckTokenMembership= function (a: THandle; b: PSID; c: PBOOL): BOOL;stdcall;

function IsAdmin: Boolean;
const
SECURITY_BUILTIN_DOMAIN_RID=32;
DOMAIN_ALIAS_RID_ADMINS=544;
var
NtAuthority: _SID_IDENTIFIER_AUTHORITY;
IsAdminMember: BOOL;
SecurityIdentifier:PSID;
hAdvapi32:THandle;
CheckTokenMembership:TCheckTokenMembership;
begin
Result :=False;
NtAuthority.Value[0] :=0;
NtAuthority.Value[1] :=0;
NtAuthority.Value[2] :=0;
NtAuthority.Value[3] :=0;
NtAuthority.Value[4] :=0;
NtAuthority.Value[5] :=5;
if (not AllocateAndInitializeSid(@NtAuthority , 2,
SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0,
0, 0, SecurityIdentifier)) then
Exit;
hAdvapi32 :=LoadLibrary(PWideChar('Advapi32.dll' ));
CheckTokenMembership := GetProcAddress( hAdvapi32, 'CheckTokenMembership' );

if ( not CheckTokenMembership(0, SecurityIdentifier, @IsAdminMember)) then
IsAdminMember :=FALSE;
FreeSid(SecurityIdentifier);
Result :=IsAdminMember;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsAdmin then
ShowMessage('is admin');
end;

Copyright:2021-2023 篆体字转换器 www.dddtedu.com All rights reserved.