如何用PostMessage控制菜单?
时间:2011-08-17
来源:互联网
一个项目,需要控制第三方程序的菜单。本打算用PostMessage发送WM_LBUTTONDOWN和
WM_LBUTTONUP来实现,但当打开第一层菜单后,想执行弹出的菜单项,再用这个消息就
不起作用了。
首先第三方程序的菜单不是标准的菜单,无法用GetMenu获取到主菜单项,再用
GetSubMenu获取子菜单。
第二,我可以获取到第三方程序的菜单所在的Bar的Handle(用spy++能看到,因此也可
以用FindWindowEx获取到),但仅能获取到这层,其中的菜单项无法获取到。
第三,网上都到可以不一层层打开,用WM_COMMAND消息,可是关于wParam参数的获取很
迷惑,不知道怎么得到。网上大部分都提到在资源中可以查到菜单的ID,比如用
eXescpoe软件查看。但是我的第三方程序用这个软件查看,在资源中无菜单项,还是得
不到菜单ID。另外我发现delphi生成的exe,使用的TMainMenu再资源中也没有菜单项。
烦请各路大虾给予指导,再次先说声感谢!
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
另外模拟键盘也是可以的,用键盘tab切换再加热键也是可以实现点击菜单项的
另外有个叫UISpy.exe的东西,Lz可以看一下,能不能取到菜单的id
作者: funxu 发布时间: 2011-08-18
Lz下个UISpy试试呢
作者: funxu 发布时间: 2011-08-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28