正在加载...

Delphi中提升为Debug权限才能关闭服务进程,下面的例子只包含提权部份.

先引用 TlHelp32 单元

?Download download.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function EnablePrivilege(hToken: Cardinal; PrivName: string; bEnable: Boolean): Boolean;  //进程提升权限
var
    TP: TOKEN_PRIVILEGES;
    Dummy: Cardinal;
 
begin
 
    TP.PrivilegeCount := 1;
    LookupPrivilegeValue(nil, pchar(PrivName), TP.Privileges[0].Luid);
    if bEnable then
      TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
    else
    TP.Privileges[0].Attributes := 0;
    //end if else
    AdjustTokenPrivileges(hToken, False, TP, SizeOf(TP), nil, Dummy);
    Result := GetLastError = ERROR_SUCCESS;
 
end;
 
//下面是调用方法
 
    //---------------------------需要将进程提升为Debug权限,才能杀掉服务进程
    OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
    EnablePrivilege(hToken, 'SeDebugPrivilege', True);
    CloseHandle(hToken);
    //----------------------------

: http://www.cbrother.com/html/2322.html

本文相关评论 - 1条评论都没有呢

还没有任何评论。

click to change 看不清?点击换一张!