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程序已经执行到后面的语句中去了,请问高手杂办呢? 展开
我的程序是用SHELL调用一个c++写的文件检测程序,扫描文件名列表中的内容,把文件内容中的敏感信息删除,并把文件命名为其他名字.
程序行这样写的:
for couter=0 to filelistcounter-1
shell c:\filescaner.exe
name list1.list(counter) as newname
next for
但后来发现很多文件只背从命名了,而文件中的内容没被去掉,也就是说但首次调用filescaner后,扫描器在没完成本次扫描时 VB程序已经执行到后面的语句中去了,请问高手杂办呢? 展开
1个回答
展开全部
建一个模块,然后放入以下:
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
如果对你有帮助,请给我多多的分,哈
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
如果对你有帮助,请给我多多的分,哈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询