我的應用程序正在運行中。我想用OpenJobObject
得到一個Handle到這個Jobobject,所以我以後可以使用這個句柄。問題是,我不知道作業名稱,並將NULL傳遞給作業名稱時,返回錯誤87(參數不正確)。如何在不知道名稱的情況下獲取JobObject的句柄?
這是我嘗試過:
HANDLE handle = OpenJobObject(JOB_OBJECT_QUERY, FALSE, NULL);
if (!handle ) printf("\nError %d", GetLastError());
else printf("\nOK");
我也發現這個MSDN上: 應用程序無法獲得一個句柄在運行它,除非它的工作對象有作業對象的名稱。但是,應用程序可以使用NULL調用QueryInformationJobObject函數以獲取有關作業對象的信息。
所以我的問題是,有可能以某種方式得到我的應用程序正在運行的JobObject的句柄?或者獲取我的應用程序運行的作業的名稱?
謝謝!
更新:
我迄今爲止代碼:http://pastebin.com/aJ7XMmci 現在,我從:(
您可以枚舉所有命名的作業對象:http://www.scriptinternals.com/new/ us/support/Internal/WMI_Win32_NamedJobObject.htm –
不幸的是,runas似乎沒有使用指定的作業對象,所以OpenJobObject在你的特定情況下不會起作用。 –