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; AdjustTokenPrivileges(hToken, False, TP, SizeOf(TP), nil, Dummy); Result := GetLastError = ERROR_SUCCESS; end;
var hToken: Cardinal; begin OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken); if not EnablePrivilege(hToken, 'SeDebugPrivilege', True) then Application.MessageBox('调试模式开启失败',nil); CloseHandle(hToken); end; //////////////////////////////////// //获得路径 var h : THandle; fileName : string; iLen : integer; hMod : HMODULE; cbNeeded,hProcess : DWORD; begin hProcess=3458; //进程PDI h := OpenProcess(PROCESS_ALL_ACCESS, false, hProcess); &n[1] [2] 下一页
|
|