2017-04-03 89 views
1

這裏是我的代碼:的Process.Start等待Excel以退出錯誤

Dim sTemplateSharedPath As String = sSharedDrive & ":\Excel Templates\ImportTemplate.xlsx"  
Dim objProcess As System.Diagnostics.Process 
        Try 
         objProcess = New System.Diagnostics.Process() 
         objProcess.StartInfo.FileName = sTemplateSharedPath 
         objProcess.Start() 
         objProcess.WaitForExit() 
        Catch 
         MessageBox.Show("Could not start process " & sTemplateSharedPath, "Error") 
        End Try 

Excel打開了我所要求的文件,但在objProcess.WaitForExit() part.The錯誤的系統崩潰,我得到的是以下幾點:

No process is associated with this object.

我希望系統打開模板,讓用戶添加他/她的數據,保存並關閉MS Excel的。一旦系統檢測到進程不再運行,請指向sTemplateSharedPath並將所有更改導入系統。如果在用戶編輯Excel文檔時應用程序的UI無響應,那很好。

我已經添加了以下到上面的代碼之前,我開始的過程:

objProcess.StartInfo.UseShellExecute = false 

但後來我得到這個錯誤:

the specified executable is not a valid application for this os platform

我希望有人能夠給asssist我與這個問題。

在此先感謝。

回答

0

您是否嘗試先使用文件作爲參數打開excel實例?

Dim sSharedDrive = "C" 
    Dim sTemplateSharedPath As String = "excel.exe" 
    Dim FileParam As String = ControlChars.Quote + sSharedDrive + ":\test new\test.xlsx" + ControlChars.Quote 
    Dim objProcess As System.Diagnostics.Process 
    Try 
     objProcess = New System.Diagnostics.Process() 
     objProcess.StartInfo.FileName = sTemplateSharedPath 
     objProcess.StartInfo.Arguments = FileParam 
     objProcess.Start() 
     objProcess.WaitForExit() 
    Catch 
     Console.WriteLine("Could not start process " & sTemplateSharedPath, "Error") 
     Console.ReadLine() 
    End Try 

我不知道.xlsx文件類型是否在你的操作系統中定義。你能手動打開.xlsx嗎?

+0

謝謝,參數方法似乎已經修復了它! – J2H656