如何编写特定进程钩子? 我想编写一程序,能够监测一特定进程,截获、处理此进程的消息。那位能给我一个例子,注意,不是系统钩子。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.codeproject.com/shell/sweeptheminesweeper.asp 不用那么高级,我只要Hook进程-〉截获进程产生/退出消息 LRESULT __declspec(dllexport)__stdcall CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); PCWPSTRUCT pcw=(PCWPSTRUCT) lParam; if(nCode>=0 && pcw && pcw->hwnd) { CString strApplication; CString strCommand=GetCommandLine(); int nnum=strCommand.ReverseFind('\\'); if(nnum!=-1) { strApplication=strCommand.Mid(nnum+1); strApplication.TrimRight(); strApplication.TrimRight("\""); } if(strApplication == "xxx.exe") { if(pcw->message==WM_CREATE) { ... } if(pcw->message ==WM_DESTROY) { ... } }} //安装钩子BOOL __declspec(dllexport)__stdcall installhook(){ //install CallwndHook callwndHook=SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)CallWndProc,hins,0); return TRUE;}//卸载钩子BOOL __declspec(dllexport)__stdcall UnHook(){ //uninstall hook UnhookWindowsHookEx(callwndHook); return TRUE;} //you may change it to thread hook, not global hook #include "winioctl.h"之后报:error C2365: “Unknown”: 重定义,如何解决? MFC中SetPixel()与GetPixel()返回值问题 关于结构体中指针的负值问题,谢谢! 如何输出垂直文本? #ifdef _DEBUG的问题 如何捕获窗体移动的消息? 还是哪个问题---关于API下编程 Socket通信和多线程的问题,急! 有那位朋友对全文检索熟悉,请教一下全文检索是怎实现的? MFC fatal error C1189: #error 求助!!! 怎么知道mp3文件已经播完了?(MCIWndCreate) VC++图形图象的运用,很简单的!
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
PCWPSTRUCT pcw=(PCWPSTRUCT) lParam;
if(nCode>=0 && pcw && pcw->hwnd)
{
CString strApplication;
CString strCommand=GetCommandLine();
int nnum=strCommand.ReverseFind('\\');
if(nnum!=-1)
{
strApplication=strCommand.Mid(nnum+1);
strApplication.TrimRight();
strApplication.TrimRight("\"");
}
if(strApplication == "xxx.exe")
{
if(pcw->message==WM_CREATE)
{
...
}
if(pcw->message ==WM_DESTROY)
{
...
}
}
}
BOOL __declspec(dllexport)__stdcall installhook()
{
//install CallwndHook
callwndHook=SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)CallWndProc,hins,0);
return TRUE;
}
//卸载钩子
BOOL __declspec(dllexport)__stdcall UnHook()
{
//uninstall hook
UnhookWindowsHookEx(callwndHook);
return TRUE;
}
//you may change it to thread hook, not global hook