向各位大侠请教。我想通过vb实现调用批处理文件(该批处理文件有大于等于1个参数),并且要求当调用的批处理文件完成后才自动执行接下去的语句。请问该如何实现,谢谢!(初次接触,希望有完整代码)

解决方案 »

  1.   

    CreateProcess+WaitForSingleObject即可解决
      

  2.   

    方法一:用延时等待:
    dim sTimeTmp 
    Shell "c:\ABCD.bat" , vbHide   'ABCD.bat 要执行的批处理文件
        
        sTimeTmp = Timer
        Do
            If Timer > sTimeTmp + 3 Then Exit Do  ‘延时3        
            DoEvents
        Loop方法二:在批处理中加入一个处理完成判别信号,如:生成一个文件Shell "c:\ABCD.bat" , vbHide   'ABCD.bat 要执行的批处理文件   
        
        Do
            If Dir("c:\abcdef.txt" ) <> "" Then Exit Do    ' abcdef.txt 是生成的文件
       
            DoEvents
        Loop
    kill "c:\abcdef.txt"