用SendMessage模拟鼠标点击,可是找不到按钮的句柄,怎么破?

心云意水 2019-09-04 09:14:26
RT,最近有个需求,要点击一个后台窗体上的按钮,这个窗体是第三方程序,不知道什么语言开发的,用spy++查看只能看到程序窗体句柄,程序窗体上存在的按钮、文本框什么,都查不到。用SendMessage模拟点击,通过spy++监控消息发现可以正确执行,比如在窗体的100,100处存在一个按钮,spy++的消息可以看到这里被单击了,但是观察窗体,并没有执行按钮被按下的动作,分析下应该是窗体的100,100处被单击不等于此处按钮被单击,可是这个按钮句柄拿不到啊。。。

头大。
...全文
392 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
巴士上的邂逅 2019-09-06
  • 打赏
  • 举报
回复
模拟鼠标点击,指定Position然后Click
jy251 2019-09-06
  • 打赏
  • 举报
回复
游戏窗体···那里面的UI都是画上去的,画上去的UI的事件,你只能通过调用来触发这个函数,sendmessage又不认识你send的这个message是啥。。如果他的程序里面没有进行处理的话。
it_gz_xi 2019-09-05
  • 打赏
  • 举报
回复
如果spy++不存在该句柄,你发送SendMessage应该也没有用吧 只要他是调用了系统窗体,暂时没试过找不到的。 有可能它是一个假的按钮。比如他点击的可能是一个Panel,自己在Panel画了按钮,然后判断鼠标点击的位置来触发该事件。只是举个例子,一般不会这样弄 如果是第三方的原因,第三方有提供API之类的东西吗
心云意水 2019-09-05
  • 打赏
  • 举报
回复
引用 1 楼 it_gz_xi 的回复:
如果spy++不存在该句柄,你发送SendMessage应该也没有用吧
只要他是调用了系统窗体,暂时没试过找不到的。
有可能它是一个假的按钮。比如他点击的可能是一个Panel,自己在Panel画了按钮,然后判断鼠标点击的位置来触发该事件。只是举个例子,一般不会这样弄
如果是第三方的原因,第三方有提供API之类的东西吗


没有提供。第三方是个游戏窗体,我怀疑按钮的确是画上去的。但是如果是画上去的,那么发送点击消息应该有用才对啊?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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