【问题标题】:Process.Start wait for excel to exit errorProcess.Start 等待excel退出错误
【发布时间】:2017-08-28 06:33:27
【问题描述】:

这是我的代码:

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() 部分崩溃。我得到的错误如下:

没有进程与此对象关联。

我希望系统打开模板,让用户添加他/她的数据,保存并关闭 MS Excel。一旦系统检测到进程不再运行,指向sTemplateSharedPath 并将所述更改导入系统。如果用户在编辑 Excel 文档时应用的 UI 没有响应,这很好。

在我开始这个过程之前,我已经在上面的代码中添加了以下内容:

objProcess.StartInfo.UseShellExecute = false

然后我得到这个错误:

指定的可执行文件不是此操作系统平台的有效应用程序

我确实希望有人能够帮助我解决这个问题。

提前致谢。

【问题讨论】:

    标签: c# excel vb.net process.start waitforexit


    【解决方案1】:

    您是否尝试先以文件为参数打开一个 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 吗?

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 2021-09-24
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多