有两个相继执行的程序,前一个运行时间较长,后一个应该在前一个结束后再运行,否则结果要么显示错误,要么显示以前的结果,请高手指点如何解决?

解决方案 »

  1.   

    如果是两个独立的程序,可以在ini文件里检测第一个程序的运行状况(一个标志)如:运行中  0  ;运行结束  1     在第二个程序中放入timer空间扫描,发现第一个程序结束就可关闭timer,开始运行第二个程序
    (标志也可放在注册表中)
    我的是苯办法
      

  2.   

    原程序如下:
    Shell App.Path + "\" + "*.exe"
    Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\" & "*.txt"
    就是将"*.exe"保存在"*.txt"中的计算结果显示出来,可是*.exe计算时间稍长,结果要么显示错误,要么显示以前的结果。
    我是个新手,高人能说的详细点吗?多谢!
      

  3.   

    '这样
    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
      

  4.   

    直接用Shell函数就可,如Shell "路径名",可放在UnLoad 事件里