2012-1
17
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); //---------------------------- |
还没有任何评论。