请问如何获取一个已经编译成可知性文件的程序界面上所有控件?(100分)

  • 主题发起人 主题发起人 leohubble
  • 开始时间 开始时间
L

leohubble

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟最近看了有关自动化测试的书籍,忽然想到如果可以获取一个已经编译成可知性文件
的程序界面上所有控件的话,然后有关输入控件的控制,就可以编程实现模拟人操作鼠标键盘
自动向一个程序中输入数据,然后提交,这是实现自动化测试软件的第一步.请问
这个功能如何实现?假设被测试的程序是Delphi编写的.欢迎讨论.
 
简单,只要获得该程序窗口的Handle,直接把按键或鼠标消息发往该窗口就可以了。
参考FindWindow,FindWindowEx,EnumWindow等函数说明,以及WM_CHAR,WM_LBUTTONDOWN
等消息说明
 
应该没有那么简单,我们需要模拟对哪个控件,作了那些操作,因此需要识别窗体上的控件
是必不可少的
 
我的意思是编程实现,制作一个工具,不是用现成的工具
 
你得用钩子把DLL注入目标程序的进程空间才行。
如果只是要枚举出所有控件的类名和属性则有一个更为简单的办法:从exe中读取dfm资源,然后自己解释它。
 
"你得用钩子把DLL注入目标程序的进程空间才行",之后怎么做,如何知道界面上的控件?
 
具体我可没有做过,我也是听别人说的,只是觉得这个思路可行。
你到了它的进程空间之后就可以搜索它的Application的指针(它的内存块是有规律的),找到了这个指针就可以为所欲为了。
 
有句柄的控件倒是也能,但是如果对方的控件没有句柄.那你就取不到了
 
后退
顶部