嗨我需要暂停/等待arorasTEMP.bat和“Label2.Text =”追加AutoCAD版本A ...之间的轰鸣声VB程序,因为它发生了蝙蝠在临时复制之前附加< / p>
Dim RetBat1
RetBat1 = Shell("C:\VTS\arorasTEMP.bat", 1)
Label2.Text = "Appending for AutoCAD version A..."
'Appending the acad2011.lsp
If System.IO.File.Exists(FILE_NAME1) = True Then
Dim objWriter As New System.IO.StreamWriter(FILE_NAME1, True)
objWriter.WriteLine(arorasKEY)
objWriter.Close()
End If
任何人都能举例吗?
答案 0 :(得分:4)
Shell是一个VB6命令,它不是启动进程的理想方式。
.NET中调用进程并等待它的正确方法是:
Dim aroras as Process = Process.Start("C:\VTS\arorasTEMP.bat")
aroras.WaitForExit()
' error code is available in aroras.ExitCode, if you need it
如果花费太长时间,你也可以强行杀死它:
If Not aroras.WaitForExit(300) Then
aroras.Kill()
End If
(其中300是等待的时间,以毫秒为单位)
答案 1 :(得分:1)
你可以告诉shell在执行其他任何事情之前等待进程完成:
RetBat1 = Shell("C:\VTS\arorasTEMP.bat", ,True)
如果花费太长时间,甚至会给出超时停止执行,在这种情况下为6秒:
RetBat1 = Shell("C:\VTS\arorasTEMP.bat", , True, 6000)
有关Shell函数的更多信息:http://msdn.microsoft.com/en-us/library/xe736fyk(VS.80).aspx