VB编程问题, Shell命令的使用,高手请进

我在VB中用SHELL调用其他程序,需要调用很多次,100次以上,但是SHELL命令有点烦的地方是它是异步的,,正如MSDN说的那样:注意缺省情况下,Shell函数是以异... 我在VB中用SHELL调用其他程序,需要调用很多次,100次以上,但是SHELL命令有点烦的地方是它是异步的,,正如MSDN说的那样:注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经"执行到 Shell 函数之后"的语句。
我的程序是用SHELL调用一个c++写的文件检测程序,扫描文件名列表中的内容,把文件内容中的敏感信息删除,并把文件命名为其他名字.
程序行这样写的:
for couter=0 to filelistcounter-1
shell c:\filescaner.exe
name list1.list(counter) as newname
next for
但后来发现很多文件只背从命名了,而文件中的内容没被去掉,也就是说但首次调用filescaner后,扫描器在没完成本次扫描时 VB程序已经执行到后面的语句中去了,请问高手杂办呢?
展开
 我来答
ruhong1
2007-01-02 · TA获得超过159个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:177万
展开全部
建一个模块,然后放入以下:

public Const SYNCHRONIZE = &H100000
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal
bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Function IsRunning(ByVal ProgramID) As Boolean ' 传入进程标识ID
Dim hProgram As Long '被检测的程序进程句柄
hProgram = OpenProcess(SYNCHRONIZE, 0, ProgramID)
If Not hProgram = 0 Then
IsRunning = True
Else
IsRunning = False
End If
CloseHandle hProgram
End Function

然后在你的窗体过程中加入,就能够实现同步了

X = Shell("NotePad.EXE", 1)
While IsRunning(X)
DoEvents
Wend

如果对你有帮助,请给我多多的分,哈
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式