我用行程A CreateProcess行程B,然后創建運行程式C獲取行程B的行程執行緒句柄
行程A:
CreateProcess(NULL,lpCommandLine,NULL,NULL,NULL,NULL,NULL,NULL,&si,&lpProcessInformation);
TCHAR szbuff[50];
wsprintf(szbuff,TEXT("%d,%d,%d,%d"),
lpProcessInformation.hProcess ,
lpProcessInformation.hThread,
lpProcessInformation.dwProcessId,
lpProcessInformation.dwThreadId);
MessageBox(szbuff,NULL,NULL);
行程C:
// TODO: 在此添加控制元件通知處理程式代碼
DWORD dwPID=4352;//代入上面dwProcessId值
DWORD dwTID=5796;//代入上面dwThreadId值
HANDLE hProcess,hTrocess;
hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwPID);
hTrocess = OpenThread( PROCESS_ALL_ACCESS, FALSE, dwTID);
wsprintf(szbuff,TEXT("%d,%d"),hProcess,hTrocess);
MessageBox(szbuff,NULL,NULL);
最后得出行程C兩個輸出值跟行程A的剛好相反(就是行程A的hProcess 等于行程C的hTrocess),,怎么回事?還有每次重復按行程C的按鈕,得出的hProcess,hTrocess依次加4,又是怎么回事?
uj5u.com熱心網友回復:
hProcess 是行程句柄,這個其實是假的吧,不具系統唯一性,其只能在本行程內使用的,或可被子行程繼承,即它類似于區域變數而非系統范圍內的全域變數(比喻)。uj5u.com熱心網友回復:
謝謝,此書已經看完。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/119630.html
標籤:Windows客戶端使用
