Как вывести список привилегий?

Previous  Top  Next

    
 

 

 

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

const

TokenSize = 800; //  (SizeOf(Pointer)=4 *200)

var

hToken: THandle;

pTokenInfo: PTOKENPRIVILEGES;

ReturnLen: Cardinal;

i: Integer;

PrivName: PChar;

DisplayName: PChar;

NameSize: Cardinal;

DisplSize: Cardinal;

LangId: Cardinal;

begin

GetMem(pTokenInfo, TokenSize);

if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,

   hToken) then ShowMessage('OpenProcessToken error');

if not GetTokenInformation(hToken, TokenPrivileges, pTokenInfo, TokenSize, ReturnLen) then

   ShowMessage('GetTokenInformation error');

GetMem(PrivName, 255);

GetMem(DisplayName, 255);

for i := 0 to pTokenInfo.PrivilegeCount - 1 do

begin

   DisplSize := 255;

   NameSize  := 255;

   LookupPrivilegeName(nil, pTokenInfo.Privileges[i].Luid, PrivName, Namesize);

   LookupPrivilegeDisplayName(nil, PrivName, DisplayName, DisplSize, LangId);

   ListBox1.Items.Add(PrivName +^I + DisplayName);

end;

FreeMem(PrivName);

FreeMem(DisplayName);

FreeMem(pTokenInfo);

end;

 

©Drkb::01722

Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php