⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_45378.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:45378 发表者:艰辛 发表日期:2003-06-29 21:37:09
<br>主题:高分请教如何用系统钩子(用DLL)监视其它应用程序的菜单项
<br>内容:各位高手,本人因单位工作需要做一个程序,要监视某个软件的其中一个菜单项的点击数,使用者每点击一次这个菜单项,我的托盘程序就要自动在次数上加1,例如:每点击一次 写字板 程序 文件菜单 中的 保存 功能,我的程序就自动加1,请问以上功能如何实现(用哪个系统钩子?如何知道用户点击了菜单?如果该应用程序标题行后端文件名会变化,如何获取窗口的句柄?有没有不使用钩子也能实现的方法等等),如果方便请提供几句关键的程序,非常感谢,一定给分!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Neil Gan 回复日期:2003-06-30 06:51:24
<br>内容:use spy++ to record the WM_COMMAND message, you can get the notify code for your menu item.<BR><BR>then, you can use the WH_CALLWNDPROC or WM_CALLWNDPROCRET hook.<BR><BR>You should use a global hook. In the DllMain of your hook dll, you can use GetModuleFileNameEx to get the .exe file name for the current process. if it is not the target process, your hook function just forward the control. if it is the target process, you check the message and do the log.<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:艰辛 回复日期:2003-07-06 19:53:51
<br>内容:多谢Neil Gan多谢提供技术,已经试验成功,不过我用的是响应WM_MENUSELECT,当初我用SPY++监视应用程序的时候发现我点击它的菜单,它是响应了WM_COMMAND的,但是我用WH_CALLWNDPROC钩子(系统)的时候,它却不响应WM_COMMAND,真是怪事,后来改用WM_MENUSELECT,不知Neil Gan能否解答这个问题?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Neil Gan 回复日期:2003-07-08 09:01:52
<br>内容:我并没有碰到过这个问题,所以我也不知道为什么。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -