2017-04-03 60 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