需要獲取另一個程式的暫存器。
我 先拿到視窗handle,測驗是拿一個記事本視窗測的
然后getwindowthreadprocessid拿到threadid
然后openthread拿到threadhandle
再suspendthread(hthread)
這時看記事本視窗已經不回應了。掛起函式回傳值也是成功
然后呼叫 BOOL ret = GetThreadContext((HANDLE)hThread, &ctx);
這個函式就不行了,死活回傳失敗,錯誤碼是87,不知道是哪個引數錯誤。有誰知道怎么回事么。
下面是代碼。
HWND hWnd = FindWindow(NULL, "新建文本檔案.txt - 記事本");
if ( hWnd != NULL )
{
dwThreadID = GetWindowThreadProcessId(hWnd, &dwProcessID);
}
HANDLE hThread = OpenThread(THREAD_ALL_ACCESS, FALSE, dwThreadID);
DWORD dret = SuspendThread(hThread);
CONTEXT ctx;
ZeroMemory(&ctx, sizeof(ctx));
ctx.ContextFlags = CONTEXT_ALL;
BOOL ret = GetThreadContext(hThread, &ctx);
int error = GetLastError();
ResumeThread(hThread);
uj5u.com熱心網友回復:
先下載安裝MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix, MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl
再參考:
MSDN98\SAMPLES\MSDN\PERIODIC\4598\KILLTHRD.CPP
MSDN98\SAMPLES\MSDN\TECHART\3274\INJLIB.CPP
MSDN98\SAMPLES\MSDN\TECHART\1407\PDEBUG.C
MSDN98\SAMPLES\MSDN\TECHART\5143\PDEBUG.C
MSDN98\SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\CONTEXT.C
MSDN98\SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\DEBUG.C
MSDN98\SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\WINNT\PFMON\DEBUG.C
MSDN98\SAMPLES\VC98\SDK\SDKTOOLS\WINNT\WALKER\PDEBUG.C
MSDN98\SAMPLES\VC98\SDK\WINBASE\DEBUG\DEB\DEBDEBUG.C
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/92530.html
標籤:基礎類
下一篇:有沒有會Lire
