2 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
If the function succeeds, the return value is an open handle to the specified process.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
就是說如果函數(shù)執(zhí)行成功的話返回的就是一個打開進程的句柄,如果失敗了就是NULL,具體錯誤的原因你可以調(diào)用GetLastError查看

TA貢獻1811條經(jīng)驗 獲得超6個贊
如果你是用VS2008的話,可能是程序執(zhí)行權(quán)限問題,可以試試這樣:
//提升程序的權(quán)限
BOOL EnablePrivilege(LPCSTR lpName, BOOL fEnable)
{
HANDLE hObject;
LUID Luid;
TOKEN_PRIVILEGES NewStatus;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hObject))
return FALSE;
if (LookupPrivilegeValue(NULL, lpName, &Luid))
{
NewStatus.Privileges[0].Luid = Luid;
NewStatus.PrivilegeCount = 1;
NewStatus.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges(hObject, FALSE, &NewStatus, 0, 0, 0);
CloseHandle(hObject);
return TRUE;
}
return FALSE;
}
OnInitDialog()中調(diào)用:
EnablePrivilege(SE_DEBUG_NAME,TRUE); //提升程序的權(quán)限
- 2 回答
- 0 關(guān)注
- 468 瀏覽
添加回答
舉報