+ -
当前位置:首页 → 问答吧 → 如何用PostMessage控制菜单?

如何用PostMessage控制菜单?

时间:2011-08-17

来源:互联网

一个项目,需要控制第三方程序的菜单。本打算用PostMessage发送WM_LBUTTONDOWN和

WM_LBUTTONUP来实现,但当打开第一层菜单后,想执行弹出的菜单项,再用这个消息就

不起作用了。

首先第三方程序的菜单不是标准的菜单,无法用GetMenu获取到主菜单项,再用

GetSubMenu获取子菜单。
第二,我可以获取到第三方程序的菜单所在的Bar的Handle(用spy++能看到,因此也可

以用FindWindowEx获取到),但仅能获取到这层,其中的菜单项无法获取到。
第三,网上都到可以不一层层打开,用WM_COMMAND消息,可是关于wParam参数的获取很

迷惑,不知道怎么得到。网上大部分都提到在资源中可以查到菜单的ID,比如用

eXescpoe软件查看。但是我的第三方程序用这个软件查看,在资源中无菜单项,还是得

不到菜单ID。另外我发现delphi生成的exe,使用的TMainMenu再资源中也没有菜单项。

烦请各路大虾给予指导,再次先说声感谢!

作者: wzn0521   发布时间: 2011-08-17

能否 用鼠标模拟点击呢?

作者: youyidianmimang   发布时间: 2011-08-18

这......Ls的方法也是没有办法的办法了,首先把目标窗体最大化,可以用消息实现,然后设定鼠标位置再模拟点击
另外模拟键盘也是可以的,用键盘tab切换再加热键也是可以实现点击菜单项的

另外有个叫UISpy.exe的东西,Lz可以看一下,能不能取到菜单的id

作者: funxu   发布时间: 2011-08-18

Lz下个UISpy试试呢

作者: funxu   发布时间: 2011-08-18

热门下载

更多