2013-08-30 57 views
1

如果可執行文件正在從DVD ROM中運行,'WaitForExit'將不會等待,但是如果從C:驅動器或外部閃存驅動器運行,它將「等待」。任何線索爲什麼這個屬性不起作用?WaitForExit不會等待exe文件在DVD光盤中

  1. 我看到任務管理器這個過程
  2. 我使用VB.NET 2010

這是我的代碼。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 

    Try 
     Dim p As New Process 
     With p 
      With p.StartInfo 
       .FileName = "D:\setup.exe" 'DVD DRIVE 
       '.FileName = "F:\setup.exe" 'EXTERNAL DRIVE 
      End With 
      .EnableRaisingEvents = True 
      .Start() 
      .WaitForExit() 
      .Close() 
      .Dispose() 
     End With 
     p = Nothing 
     MsgBox("END") 

    Catch ex As Exception 
     MsgBox(ex.Message) 

    End Try 

End Sub 

回答

1

這是安裝的特定功能,它們自身複製到硬盤驅動器,這樣當用戶彈出驅動器,同時它是忙着安裝它們不能失敗。這將是不好的,留下一個部分安裝的應用程序。這種情況發生的頻率比你想象的要多得多,這是一個經典的「哦不,不是那麼做的!」用戶響應。特別是在AutoRun仍然有效的時候。

所以你看到的是真正發生的事情。該過程實際上已經退出,剛剛開始在硬盤上覆制。當然,你無能爲力。嘗試在退出後找回它將是一種解決方法。

+0

謝謝Hans。 –