如何用WindowsAPI的InsertMenu在其他程序里的子菜单里加入菜单项 ( 积分: 300 )

  • 主题发起人 主题发起人 laotan
  • 开始时间 开始时间
L

laotan

Unregistered / Unconfirmed
GUEST, unregistred user!
我想增加其他应用程序(无源码)的功能,在其窗体菜单的子菜单里insert 一个我的菜单项。请问如何实现?<br> &nbsp;另,如果要实现刚加入的菜单的点击事件,如何处理,都说要用到HOOK.<br><br>请贴出源码更好,谢谢!
 
我想增加其他应用程序(无源码)的功能,在其窗体菜单的子菜单里insert 一个我的菜单项。请问如何实现?<br> &nbsp;另,如果要实现刚加入的菜单的点击事件,如何处理,都说要用到HOOK.<br><br>请贴出源码更好,谢谢!
 
http://www.delphibox.com/article.asp?articleid=2015<br>我想这个是你要的
 
我写了一点代码,还没有完全实现楼主要求的功能,不过思路应该是对的。<br>var<br> &nbsp;Hnd : HWnd;<br> &nbsp;MenuHnd:HMENU;<br>begin<br> &nbsp;Hnd := FindWindow( nil,'Form1');//找该程序窗体的句柄<br> &nbsp;if Hnd = 0 then begin<br> &nbsp; &nbsp;ShowMessage('窗口没找到');<br> &nbsp; &nbsp;Exit;<br> &nbsp;end;//没找到,退出<br> &nbsp;MenuHnd:=GetMenu(Hnd);<br> &nbsp;if MenuHnd=0 then begin<br> &nbsp; &nbsp;ShowMessage('菜单没找到');<br> &nbsp; &nbsp;Exit;<br> &nbsp;end;<br> &nbsp;AppendMenu(MenuHnd, MF_STRING, 1111, '&amp;About...');<br> &nbsp;//AppendMenu(MenuHnd,MF_POPUP,MainMenu1.Handle,<br> &nbsp;//SetMenu(Hnd,MainMenu1.Handle);<br> &nbsp;showmessage(inttostr(MenuHnd));<br>end;<br>这里只是添加了一项菜单。要添加弹出菜单还需要修改参数。另外,要执行菜单功能,就要用到动态链接库了吧,否则程序代码总不能Append到人家程序里面去吧~呵呵
 
注意:问题提到的“其他程序”不一定是delphi编的
 
没有说一定需要其他程序是delphi编的啊,无论什么编的最后都是使用Window API来创建菜单的,所以这些API对于任何第三方程序都可以调用到的。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部