不用给分我,只是提出一个建议:如果这个问题能够解决,请ZDG找人整理一下有关资料,在CSDN发表。
解决方案 »
- 如何使单文档程序在最大化/还原时,根据自己的需要进行窗口设置?
- 快加群:23998252(软件开发者群5) 晚了进不了
- VC的全局键盘钩子(HOOK)为什么不能捕获到telnet、UNIX终端等的按键消息
- 这个 东东有人做过类似的吗?给点建议吧
- 请高手介绍以下有关与日本横河DCS通信的方式?
- 我在单文档中嵌入了一个对话框,能否在菜单中关闭此对话框,再嵌入另一个对话框?
- 是使用标准C++类库还是使用MFC类库?
- C++程序连接到局域网电脑上的一个ACCESS数据库文件的问题
- 怎样调用其他程序,并模拟鼠标按下那个程序的确定键
- 急不可耐!CommandBar的问题?
- 怎样修改AfxMessageBox()消息框的背景颜色和按钮的颜色
- 菜单,菜单,又见菜单..
不过要快一点哦,我现在已找到了16位for win31下的hook other application menu源码。
再捕捉右键菜单窗口如何做,尚未弹出就应加入item
1.hook mouse right click
2.windowfrompoint ->hwnd
3.hook wm_initmenu.
我再试试看
在“Undocumented Windows"之类的书中不是有source code吗?
当时我曾经专门写e-mail给Matt Pietrek询问这类技术,结果他告诉我他对此类技术并不感兴趣,或许他在Microsoft System Journal上所解答的问题才比较高深吧。
是否可以Hook窗口的Message呢?
2.截获TrackPopupmenu/TrackPopupmenuEx 函数
3.添加 Menu
4.继续 TrackPopupmenu/TrackPopupmenuEx
----------------
只是如何截获API函数,是一个难点,
我在CSDN 上也有一个相同的问题,没有人可以解答。
不过,你要截获的是 Windows API,因该比较简单,
(由于使用钩子函数,映射到Application 线程里,可以修改该APP 的 PE)
可以看看MS 的 detours,还可以看看 bo2k 的 source
会有一点启发的。
哪里有bo2k 的 source和
MS 的 detours
solomon:去年我的想法是截获api,但用apiload察看时不知何故点击右键找不到TrackPopupmenu/TrackPopupmenuEx,我已在msdn找到加入other application system menu的源代码,是截获wm_initmenu消息,现在的任务只是区分是否context menu了。
to:zjy MS 的 detours source在easyp.soim.net可找到
因为我用spy++跟踪发现它的菜单的弹出
没有wm_initmenupopup消息。
谁有Softice 4.01的注册码,请帖给我,好久没玩Softice了,看来需要trace一下。
next get the information's content.
add your menu into the content.
use "repaint the canvas" paint the menu into Canvas.
得要好好查一下。
我用SoftICE追踪notepad,发现它不调用TrackPopupMenu和TrackPopupMenuEx,难道有Undocument API弹出菜单
不能用HOOK WM_INITMENU,WM_INITPOPUPMENU等,因为如果那样的
话,必须判定MENU是什么样的MENU,不一定是右建菜单。Perfect Menu 带有一个动态库,叫*hook*.dll,利用他或许能完成你的
任务我这里有一个屏幕取词的源码,可惜是BC的,他用了几个关键的宏在VC里是找不到
的,我没时间仔细研究它,如果你要,我可给你。
虽然还是没有找到notepad弹出菜单的函数,但我的问题已有解决思路了。