首先你需要获得你要点击的按钮的句柄,然后你可以通过你的Delphi程序给该按钮发送消息(sendmessage之类的API函数)。消息的格式你可以通过spy++来获得(spy++不但可以获得你需要的句柄,还可以得到某个事件发生时所产生的消息。)具体做法为:把spy++获得消息的靶型图标拖到你要发送消息的按钮上,这是你就会得到该按钮的所有句柄继承关系(包括按钮本身的句柄。),然后你按下你需要发送消息的按钮,这时在spy++的消息显示框里就得到了单击该按钮产生的所有消息。接下来你就可以讲这些消息通过你的程序发送到该按钮上。(具体产生的消息主要就是这两个:鼠标按下(mousedown),鼠标d回(mouseup))。
我猜的可能:
1
这个控件是纯编码实现的,然后再显示出来。所以资源编辑器上不显示。也许你忘了这部分代码。
2
这个控件是不是被某一个控件遮挡了?所以编辑器上不显示,但运行的时候Tab顺序再前面,所以显示了。比如一个
静态控件
如果没有文字是看不出来的,但是挡住了这个控件。
3
编译器
问题,重新Wizard生成一个,看是不是没问题。这个只有重装VC了。
4
你的对话框资源是不是从别处移植过来的。
5
Sorry
,我真不知道了。祝福你找到办法。
QQ2009 以后的版本的窗口控件基本都是自绘,意思就是说它的窗口处理函数是主窗口处理函数,“控件”自己(其实根本没有控件,是自绘)是没有句柄的。它是通过你鼠标点击的位置来判断你要按什么按钮的。
可以通过SPY3的回放报文工具,将采集到的报文保存为带时间戳的文本文件,然后直接使用SPY3回放报文再次发送到网络中。此外,SPY3还支持将报文转换成树形结构,方便用户调试和查看网络报文信息。
以上就是关于delphi点击外部程序的按钮全部的内容,包括:delphi点击外部程序的按钮、VC++ 在对话框中某个控件编辑时不显示 程序运行时这个控件却显示、我用spy++怎么获取不到QQ查找面板上的控件句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)