Delphi 如何操作外部程序的控件?如按钮,文本框,单选按钮等

看你要做什么,比较现在网络很流行的QQ、MSN这些软件都屏蔽了,你可能还可以访问一些小软件的这些控制,思路及方案如下(API函数自己去百度查一下)

1.得到你要这个窗口的句柄 使用FindWindow

2.利用枚举函数EnumChildWindows把这个窗口里的所有文本框、按钮找到,并得到其句柄,EnumChildWindows需要一个回调函数,你可以在回调函数中把模拟输入,单击双击这些操作加上去

3.在回调函数里,其实就是向你找到的按钮或文本框发送消息

消息说明:

比如得到文本框中的文字消息:WM_GETTEXT

设置文本框的文字消息:WM_SETTEXT

鼠标左键单击WM_LBUTTONDOWN必须与WM_LBUTTONUP配对使用

双击左键WM_LBUTTONDBLCLK

给你破盆冷水,现在要实现操作外部程序是很困难的,现在的软件都超级变态了,以前用Api能解决的问题对商业软件都无效了!自从大量程序出自C#.net之后传统APi就显得力不从心了,像什么Hook之类的都被现有的杀毒软件所封杀了,现在我们这些所谓的高手也都转向别的领域了,没有再研究他们的必要了。总之只要能在网上找到的技术很快就会过时!因为人家打算公布就意味着新技术的开始.这是专业人员给你回答!

使用API

SendMessage发送一个消息到指定的窗口,如何查找窗口的句柄就需要配合Spy++之类的工具了

例如SendMessage(Handle,WM_CLOSE,0,0);能关闭本窗口