我正在使用OpenProcess功能。該代碼在Windows XP中工作得很好,但在Win 7 X32位上失敗。OpenProcess無法勝出7
我的代碼如下
void SetDebugPrivileges()
{
void* tokenHandle;
TOKEN_PRIVILEGES privilegeToken;
LookupPrivilegeValue(0, SE_DEBUG_NAME, &privilegeToken.Privileges[0].Luid);
privilegeToken.PrivilegeCount = 1;
privilegeToken.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &tokenHandle);
AdjustTokenPrivileges(tokenHandle, 0, &privilegeToken, sizeof(TOKEN_PRIVILEGES), 0, 0);
CloseHandle(tokenHandle);
}
HANDLE _stdcall MyOpenProcess(DWORD dwAccess, BOOL bInherit, DWORD dwPID)
{
SetDebugPrivileges();
HANDLE hRes = OpenProcess(dwAccess | PROCESS_SET_INFORMATION | PROCESS_VM_READ, bInherit, dwPID);
}
OpenProcess失敗,錯誤代碼5勝7,但是,XP正常工作。如果有人能夠幫助解決這個問題,那將是非常好的。
只是爲了確保..您正在使用管理權限運行您的應用程序? – christian 2010-11-22 10:46:20
訪問被拒絕。 VM_READ和調試訪問都非常有特權。 – 2010-11-22 11:56:52