在下12月16号请教“如何在前一个程序运行完后再开始下一个程序? ”,按照 tztz520(午夜逛街)用 ShellWait 方法果然奏效,可是我的可执行程序是Fortran编的EXE文件,在运行过程中有DOS屏幕,怎样能隐藏DOS屏幕,并在程序运行过程中显示提示“正在计算,请稍候”,并在计算结束后自动关闭提示呢?
原问题和tztz520(午夜逛街)的方法如下:原程序:
Shell App.Path + "\" + "*.exe"
Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\" & "*.txt"
就是将"*.exe"保存在"*.txt"中的计算结果显示出来,可是*.exe计算时间稍长,结果要么显示错误,要么显示以前的结果。tztz520(午夜逛街)的方法:
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)Private Const PROCESS_QUERY_INFORMATION As Long = (&H400)
Private Const STILL_ACTIVE As Long = &H103
Sub ShellWait(FileName As String)
Dim hShell As Long
Dim hProc As Long
Dim lExit As LonghShell = Shell(FileName, vbNormalFocus)
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
Do
        GetExitCodeProcess hProc, lExit
        DoEvents
Loop While lExit = STILL_ACTIVE
End Sub
Private Sub Command1_Click()
ShellWait App.Path + "\" + "*.exe"
'直到执行完上面的程序才会执行下面的
Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\" & "*.txt"End Sub请各各位高人指点为盼