Hook消息的问题。我为什么只能钩到进程内的消息。别的进程的消息我收不到。
pp616 2003-02-12 03:13:59 我需要截取别的进程的消息。
写了个Dll。代码如下:
#pragma option -zRSHSEG
#pragma option -zTSHCLASS
#include <windows.h>
#define WM_MYHOOK WM_USER + 1234
#pragma argsused
HHOOK NewHook=NULL;
int LoadCount=0;
HINSTANCE DllHinst=NULL;
HANDLE m_hwnd=NULL;
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
DllHinst=hinst;
if(reason==DLL_PROCESS_ATTACH)
LoadCount+=1;
else if(reason==DLL_PROCESS_DETACH)
LoadCount-=1;
return 1;
}
LRESULT WINAPI MsgHook(int nCode,WPARAM wParam,LPARAM lParam)
{
MSG *msg;
if (nCode==HC_ACTION)
{
msg=(MSG *)lParam;
switch(msg->message)
{
case(...)
......
}
}
return (CallNextHookEx(NewHook,nCode,wParam,lParam));
}
extern "C" __declspec(dllexport)
void EnableHook(HANDLE mHandle)
{
if (NewHook==NULL)
{
m_hwnd=mHandle;
NewHook=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)MsgHook,DllHinst,NULL);
}
}
extern "C" __declspec(dllexport)
void DisableHook()
{
if (NewHook!=NULL)
{
UnhookWindowsHookEx(NewHook);
NewHook=NULL;
}
}
为什么我调用这个DLL。只能收到本进程内的消息。别的就收不到呢。是不是我的hook写的有问题。请各位指点一二