回复 2楼 yuccn
这是我dll中写的代码。 目的是想以全局的形式插入目标进程,在目标进程中捕获键盘消息。
LRESULT CALLBACK KeyboardProc(
int code,
// hook code
WPARAM wParam,
// virtual-key code
LPARAM lParam
// keystroke-message information
)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if(((lParam&(1<<31))==1) && wParam==VK_F9)
{
AfxMessageBox("hello");
}
return CallNextHookEx(NULL,code,wParam,lParam);
}
__declspec (dllexport) void SetHook()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
HWND hwnd=::FindWindow(NULL,"MSDN Library - October 2001");
if(!hwnd)
{
AfxMessageBox("FindWindow() error!");
return;
}
DWORD tid,pid;
tid=GetWindowThreadProcessId(hwnd,&pid);
if(!dle)
{
AfxMessageBox("GetModuleHandle() error! %d",GetLastError());
return;
}
SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("GlobalHook.dll"),tid);
}