征解:如何控制另一程序弹出的模式对话框的子控件(200分)

  • 主题发起人 主题发起人 dxbdts_abc
  • 开始时间 开始时间
D

dxbdts_abc

Unregistered / Unconfirmed
GUEST, unregistred user!
关键字:模式对话框
我面临的情况是这样的:现有一个程序work.exe(只有执行文件,无源代码),选中
一个菜单项后弹出一个模式对话框,该模式对话框有多个编辑框、组合框供操作人员录
入数据,输完数据后点击按钮即完成本次输入工作。
现在我要完成的工作是这样的:做一程序control.exe,从其他地方取来数据,并自
动将取来的数据向work.exe中录入数据的模式对话框传递,然后模拟按钮点击动作来模
仿操作人员录入数据的工作以实现自动化。
不知诸君有何妙策?


附注:我已能用FindWindow,SendMessage等API,实现了控制另一程序弹出的非模式
对话框的子控件,但对模式对话框而言却不能成功,原因是必须关闭模式对话框后,我发
送过去的消息才被响应.
我只关心怎样才能控制另一程序弹出的模式对话框的子控件,因此不用发消息的方
法如能解决该问题当然也不错;另外能否在另一程序弹出模式对话框之前,转变为弹出
非模式对话框,这样一来也能达到目的。不知用Hook能否解决这一问题。
望高手指点迷津,不胜感激!
 
试一下用spy或winsight取得模式对话框的handle,然后在程序中直接使用handle进行控制
具体细节不要问我
 
直接找到对话框的HANDLE,再给对话框发消息即可
 
用COM吧!这是唯一的可能。
 
感觉是message被送到主wndproc的消息队列去了, 然后要等到
modal框结束才能响应。
所以我觉得,windbell 和xianjun说的很对。
 
看看下面这个能不能对你有帮助,它可以控制别的程序弹出的MessageBox:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1309717
 
后退
顶部