没错,用openprocess()可完全解决你的问题,因为我也调用过fortran程序。
程序代码如下,用了之后,可别忘了给分啊。
Private Declare Function OpenProcess Lib "kernel32" _
   (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" _
   (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
   (ByVal hObject As Long) As LongConst INFINITE = &HFFFF
Const PROCESS_QUERY_INFORMATION = &H400
Private hProcess As Long
Private ExitEvent As LongPublic Sub CalDosExe()
dim Pid
Pid = Shell(YourDosFileName, vbNormalNoFocus)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, Pid)
ExitEvent = WaitForSingleObject(hProcess, INFINITE)
Call CloseHandle(hProcess)
End Sub