本文整理自网络,侵删。
//提升进程令牌函数
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 xe5 android 开发实现手机打电话和发短信
Delphi winapi: getforegroundwindow - 获取前台窗口的句柄
Delphi 使用 {$include} 或 {$i} 指令管理和调用自定义函数
Delphi 得到 winrar 处理解压缩文件的返回值 ?
更多相关阅读请进入《Delphi》频道 >>