如何实现等待外部程序运行完后再继续执行VB下面的代码
我用SHELL打开一外部程序,并要点击该外部程序上的某个按钮进行模拟操作。由于该程序比较大,要运行较长时间,VB没等该程序界面显示出来就执行下面的代码了,所以模拟操作也失败了。如何实现在外部程序完全打开之后在执行VB后面等代码,我是新手。麻烦告诉给出详细的代码,包括函数声明。谢谢 --------------------编程问答-------------------- 我是刚注册的号,给不了分啊,不要认为没分就不回复吗,恳求高手指点 --------------------编程问答-------------------- Dim si As SHELLEXECUTEINFO
Dim i As Long
si.cbSize = Len(si)
si.lpVerb = "open"
si.lpFile = strPath
si.lpParameters = "c:\rar.exe a c:\a.rar c:\a.rar"
si.lpDirectory = ""
si.nShow = vbHide
si.fMask = &H40
i = ShellExecuteEx(si)
If si.hProcess <> 0 Then
WaitForSingleObject si.hProcess, &HFFFFFFFF' 无限等待,直到程式结束
CloseHandle si.hProcess
End If
函数和常量自己定义 --------------------编程问答-------------------- 麻烦给点详细的,我才学的VB
我举个例子,我要打开QQ并双击某个好友打开与该好友的聊天窗口。我用VB SHELL运行了QQ,在QQ界面还没完全显示出来的时候,VB就去执行 双击好友的那段了,QQ界面都没出来,也就点不了好友了
我看了下进程。QQ进程已经有了,但是界面还没完全显示出来,没法进行下面的操作了。谢谢,等我能给分了,我一定加倍补偿给解决我问题的人。好人有好报。 --------------------编程问答-------------------- 补充:QQ是设置的自动登录的方式 --------------------编程问答-------------------- 最简单的方法,用Sleep函数延迟一定的时间(比如20秒或者更长,确保你的外部程序运行起来。)
--------------------编程问答-------------------- CreateObject("WScript.Shell").Run """" & "程序路径" & """", 1, True --------------------编程问答-------------------- 哦,上面是等待程序结束,你要的是等待程序界面出来。。。
--------------------编程问答-------------------- '假设QQ标题栏是“QQ2009”
Set o = CreateObject("WScript.Shell")
Do Until o.AppActivate("QQ2009")
DoEvents
Loop
MsgBox "QQ界面出来了!"
补充:VB , 基础类