如何自动运行、控制另外一个程序?(200分)

  • 主题发起人 主题发起人 CLG_D
  • 开始时间 开始时间
C

CLG_D

Unregistered / Unconfirmed
GUEST, unregistred user!
本人要编一个自动运行多个外部程序,并控制其执行的程序!

比如:自动进行磁盘扫描,自动模拟用户输入,来达到等同与手工运行的效果!

我只知道可以用 WINEXEC()来实现第一步,第二步,我认为:应知道该程序的HANDLE、CAPTION等数据,可以用FINDWINDOW和GETWINDOW实现,但是如何知道其界面上任意控件之间及其与该程序的主从关系?(模拟按键可以用SENDMESSAGE传递KEDOWN或MOUSEKOWN消息)
 
既然你想自己执行外部程序并控制它模拟运行. 那么你首先肯定知道你要
运行的是什么程序, 那么当然也知道它的界面是怎样的了. 否则何谈模拟一
说?
 
我是知道要运行的是什么程序!但是
我不知道其界面上任意控件之间及其与该程序的主从关系!
比如,哪个按钮是属于哪个子窗口的,这个子窗口又属于哪个程序的!

我觉得似乎只有知道了这些,才能在程序中自动的去按“开始”按钮或
其他按钮(有些按钮不是窗口,似乎更难一些!)

不知各位意下如何!

谢谢!
 
try a macro stuff, it could record your action and replay them
later, wish it could help.
 
哪种记录的玩意能记录程序的所有动作? 也就是说除了界面上的显示之外, 还记录程序运行的其他动作?(比如删点什么, 写点什么到数据库)
CLG_D:
看来你需要先打开那个要执行的程序运行一次, 记下个控件与窗口之间的
关系再编你的程序.
 
用winsight或spy++可以看到窗口里面所有控件的主从关系!
 
cakk,我用winsight看过,但有些按钮不是窗口,所以找不到!
W.H.,有那样的程序吗?不妨给我们介绍一下!
CJ,How can I do it to another windows application?

非常感谢大家! ^_^
 
>>但有些按钮不是窗口,所以找不到!
比如....?
 
不用SENDMESSAGE,因为有的HANDLE不能找到。
用D4安装盘带的SNDKEY32.PAS就能实现。

你要是没有,可以给你寄去。
 
O*O,请发给我试试!
 
我靠!!! 是要编病毒吗???
 
用winsight找不到就用spy++.我还没发现用spy++找不到的handle
 
cytown,不是,我还没那么高的水平和那么低的道德修养!
 
to CLG_D: sent out.

to cAkk: 有些按钮没有HANDLE,用SPY++也没用。
比如TSpeedButton,TToolButton
 
每执行完一个外部程序后,都发一个消息给系统。系统根据接收到的消息
决定是否继续执行等。
 
//THANK O*O
//NODE O*O
Jams,可是执行过程中怎么控制呢?
 
对于TSpeedButton,你的sendkey也管用???
 
外部程序执行中无法控制,一旦结束,其句柄就释放了,此时再发送消息!
 
to CLG_D:

一个例子,调用磁盘扫描程序(win98),并自动执行完全扫描。
(缺省是标准扫描)。

sent out.

to cAkk:

是我错了。丢人现眼。
不过SPEEDBUTTON一般都有相应的菜单项,SENDKEY就可以了。
 
后退
顶部