各位大侠,救我
我编了VB程序,要用它循环调用另个程序来批量处理一些文件,
(每一次调用,即每个文件的处理都要花上几秒到十几秒不等,)
我只知道用shell("c:\example.exe")这个命令,但我不知道如何来防止这个程序被多次调用
也不知道如何来释放内存.
还有奇怪的是,我单单循环使用shell("c:\example.exe")来进行批处理时,有时候在任务管理器中可看到多个example.exe ,但多数都不占用CPU,最后的结果是我的文件没有被处理。但有的时候,(一般是我的这个程序打开后马上执行这个循环shell命令),却能正常批处理文件.
Many thanks!!

解决方案 »

  1.   

    这是我的程序中的相关代码,请各位帮个忙,看一下
    (十分奇怪的是,我的程序如果一打开就执行下面的任务,能正常进行。
    但如果先执行其它的代码再执行下面的代码,就会出错,程序管理器中我的这个程序占用99%左右的CPU,RNAstructure.exe虽然也被调用了出来,但并不占用CPU,也就是不干活,最后自然完不了任务。)
    Dim fso As New FileSystemObject
    ------------------------------------
    Private Sub File2_DblClick()
    For acc = 0 To File2.ListCount - 1
    File2.Selected(acc) = True
    fn11 = File2.Path & "\" & File2.FileName
    fn22 = Left$(fn11, Len(fn11) - 4) & ".ct"
    Shell ("RNAstructure /fold -s " & fn11 & " -c " & fn22)
    again:
    If fso.FileExists(fn22) = False Then
      a = a
      GoTo again
    End If
    Next acc
    ok2 = MsgBox("       已经搞定了!!!!!!!   ", 0, "保存完成")
    End Sub
      

  2.   

    你goto again只是一直检查文件是否存在阿!并没有调用RNAstructure啊!如果你觉得shell不方便,可以用CreateProcess API函数,判断是否运行,可以用FindWindow API函数
      

  3.   

    Dim fso As New FileSystemObject
    ------------------------------------
    Private Sub File2_DblClick()
    For acc = 0 To File2.ListCount - 1                  '这里的条件一为真就调用shell
    File2.Selected(acc) = True
    fn11 = File2.Path & "\" & File2.FileName
    fn22 = Left$(fn11, Len(fn11) - 4) & ".ct"
    Shell ("RNAstructure /fold -s " & fn11 & " -c " & fn22)
    again:
    If fso.FileExists(fn22) = False Then
      a = a
      GoTo again
    End If
    Next acc
    ok2 = MsgBox("       已经搞定了!!!!!!!   ", 0, "保存完成")
    End Sub所以代码本身就不合理,考虑代码重新写了!