如何触发商业软件中的按钮事件

paulqingxue 2012-12-21 03:33:43
目的:通过点击自研软件中的按钮,触发商业软件中一按钮的事件,达到半集成的目的
问题:
1.如何获取商业软件中按钮的句柄?
2.如何获取商业软件的按钮连接函数?
3.如何将自己的按钮问题2中的函数连接,达到点击-》触发的效果?
补充:
1.商业软件Pro/Engineer 5.0
2.可以使用其他任意商业软件,达到目的即可
3.Spy++取不到这个按钮的句柄
...全文
265 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
paulqingxue 2012-12-28
  • 打赏
  • 举报
回复
引用 12 楼 Coder_Y_Jao 的回复:
有些意义上的按钮并非不一定是窗口,,可能是比窗口还小的对象 楼主可以试下 MSAA 或者 UI Automation 相关。
1.非常感谢您的回答 2.我试一下,有成果马上贴出来
paulqingxue 2012-12-28
  • 打赏
  • 举报
回复
引用 13 楼 zhao4zhong1 的回复:
http://www.autohotkey.com
1.非常感谢您的回答 2.这工具应该能帮到我
Coder_Y_Jao 2012-12-27
  • 打赏
  • 举报
回复
有些意义上的按钮并非不一定是窗口,,可能是比窗口还小的对象 楼主可以试下 MSAA 或者 UI Automation 相关。
ForestDB 2012-12-27
  • 打赏
  • 举报
回复
如果只是测试,固定窗口最大化,然后相对坐标就固定了,最省事的方法。 否则,慢慢找方法吧。
paulqingxue 2012-12-27
  • 打赏
  • 举报
回复
引用 9 楼 ForestDB 的回复:
如果只是测试,固定窗口最大化就好了。
1.感谢您的回答 2.非测试,您能细说一下吗?
赵4老师 2012-12-27
  • 打赏
  • 举报
回复
ForestDB 2012-12-21
  • 打赏
  • 举报
回复
如果只是测试,固定窗口最大化就好了。
paulqingxue 2012-12-21
  • 打赏
  • 举报
回复
引用 7 楼 arpnet99 的回复:
引用 6 楼 paulqingxue 的回复:引用 3 楼 arpnet99 的回复:模拟鼠标点击事件 mouse_event 1.感谢您的回答 2.不同的屏幕,大小不同,按钮位置可变。恐怕模拟鼠标点击输入方法不可行 你能找到父类的窗体,那就能找到父类窗体的位置,那个按钮的位置也就找到了吧。
1.感谢您的回答 2.说的在理!我马上去试试,如果成功就贴出代码。
这不是鸭头 2012-12-21
  • 打赏
  • 举报
回复
引用 6 楼 paulqingxue 的回复:
引用 3 楼 arpnet99 的回复:模拟鼠标点击事件 mouse_event 1.感谢您的回答 2.不同的屏幕,大小不同,按钮位置可变。恐怕模拟鼠标点击输入方法不可行
你能找到父类的窗体,那就能找到父类窗体的位置,那个按钮的位置也就找到了吧。
paulqingxue 2012-12-21
  • 打赏
  • 举报
回复
引用 3 楼 arpnet99 的回复:
模拟鼠标点击事件 mouse_event
1.感谢您的回答 2.不同的屏幕,大小不同,按钮位置可变。恐怕模拟鼠标点击输入方法不可行
paulqingxue 2012-12-21
  • 打赏
  • 举报
回复
引用 2 楼 baichi4141 的回复:
对于不是MFC架构的程序,你都不知道它里面的“按钮”是什么结构,更加没办法触发什么“事件” 一个也许可行的方法是模拟鼠标点击输入
1.感谢您的回答 2.不同的屏幕,大小不同,按钮位置可变。恐怕模拟鼠标点击输入方法不可行
paulqingxue 2012-12-21
  • 打赏
  • 举报
回复
引用 1 楼 w_xei 的回复:
FindWindow商业软件的窗口句柄,再用SPY++取到按钮ID,向商业软件窗口句柄发WM_COMMAND消息

1.谢谢您的回答
2.SPY++只能取到这个按钮的父类的句柄,取不到这个按钮的句柄,如下图

这不是鸭头 2012-12-21
  • 打赏
  • 举报
回复
模拟鼠标点击事件 mouse_event
baichi4141 2012-12-21
  • 打赏
  • 举报
回复
对于不是MFC架构的程序,你都不知道它里面的“按钮”是什么结构,更加没办法触发什么“事件” 一个也许可行的方法是模拟鼠标点击输入
w_xei 2012-12-21
  • 打赏
  • 举报
回复
FindWindow商业软件的窗口句柄,再用SPY++取到按钮ID,向商业软件窗口句柄发WM_COMMAND消息

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧