永发信息网

vb对别的程序实现按钮点击事件问题

答案:3  悬赏:20  手机版
解决时间 2021-08-11 20:42

想用自己的程序实现别的程序的按钮事件,如果目标是系统自带的“计算器”,我下面的这段代码是可以实现的,但是对于一些却实现不了。请各位帮我看一下,是不是需要改哪里或者有别的更好更通用全面点的代码。

测试了一下,好像只有vb写的程序才可以控制,那是个普通的窗体按钮,用工具可以获取到句柄的。所以应该是我的代码需要改什么函数

tWnd1 = FindWindow(vbNullString, "窗口句柄") 
  If tWnd1 <> 0 Then
  tWnd2 = FindWindowEx(tWnd1, 0, vbNullString, "按钮句柄")

'程序上面可以运行,到这里后就在下面的判断没办法实现,也就是说句柄是获取到了,那个“按钮句柄”也有可能在获取不到,导致下面不能实现判断。但是没办法实现点击效果,同样的方法在系统的计算器却可实现,控制自己编译的别的vb程序中的按钮也可以实现。对vb编译的窗口句柄和按钮句柄返回的不为0,但是对于非vb(c++可以正常返回不为0)编译的只有窗口句柄返回不为0,按钮句柄返回就变为0了。

  If tWnd2 <> 0 Then
  SendMessage tWnd2, BM_CLICK, 0&, 0& '点击
  End If
  Else
  tWnd2 = 0
  End If
积分不多了,只有17了,抱歉!

最佳答案
句柄代码正确,只是有些第三方程序不能操作这方法而已,改下代码就可以了。已经发给你了,请查收!
全部回答

为什么不用Findwindow直接用标题找按钮句柄,而要用FindWindowEx,为什么不用postMessage,而用sendMessage

可能是有的软件使用了hook技术,就象一些防外挂的游戏一样!

或者使用了windows内核对象设置了拒绝公开地止空间中的句柄!

具体说不清楚!

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DOTA里牛头人,怎么用!
E63 证书!
超级QQ不在线可以升级吗
谷城县襄樊昌鑫橱柜衣柜地址在什么地方,想今
TX是不是有病啊,成天给人家掉线
泡泡堂里按哪个键可以自救
安踏 耐克 阿迪达斯 李宁 棉衣 棉袄批发
物流车队调度怎么做?
怎样有效祛痘啊?
25号来月经,下个月3同房会怀孕吗
我的末次月劲是农历正月初五结束是正月十一请
仙途推广号填什么阿?
纵横四海任务《魔合之乱10》怎么过?
得了乳腺癌乳头会痒吗
杭州学舞蹈的在哪里
推荐资讯
梁园区商丘尚捞时尚港式捞吧怎么去啊,谁知道
我的笔记电脑开机等一小就黑屏,启动也正常就
51弑魂纯PK加点、装备
舍鱼而取熊掌者也的而的意思
富川哪里有去除雀斑的地方?
系统启动出错
求个振奋人心的曲子。在《士兵突击》里面出来
牧场上的猎人是干什么的?
这套YY要买永久的多少钱啊?分别列一下!
湖北武汉黄陂区盘龙城邮编是多少
如何鉴别英特威疫苗
法官:“你为什么用椅子砸你的妻子?”被告:
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?