本文整理自网络,侵删。
//提升进程令牌函数
function AdjustProcessPrivilege(ProcessHandle:THandle;Token_Name:Pchar):boolean;
var
Token:THandle;
TokenPri:_TOKEN_PRIVILEGES;
ProcessDest:int64;
l:DWORD;
begin
Result:=False;
if OpenProcessToken(ProcessHandle,TOKEN_Adjust_Privileges,Token) then
begin
if LookupPrivilegeValue(nil,Token_Name,ProcessDest) then
begin
TokenPri.PrivilegeCount:=1;
TokenPri.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
TokenPri.Privileges[0].Luid:=ProcessDest;
l:=0;
//更新进程令牌,成功返回TRUE
if AdjustTokenPrivileges(Token,False,TokenPri,sizeof(TokenPri),nil,l) then
Result:=True;
end;
end;
end;
if AdjustProcessPrivilege(GetCurrentProcess,'SeDebugPrivilege') then //提升权限
begin
Memo1.Lines.Add('提升权限成功')end
elsebegin
Memo1.Lines.Add('提升权限失败');end;
相关阅读 >>
Delphi sendtextmessage 等方便的消息发送函数
Delphi strtoint 将“字符型”转换成“整数型”
winapi 字符及字符串函数(10): lstrcpy - 复制字符串
更多相关阅读请进入《Delphi》频道 >>