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() Часть. Ошибка, которую я получаю, заключается в следующем:

Ни один процесс не связан с этим объектом.

Я хочу, чтобы система открыла шаблон, попросила пользователя добавить свои данные, сохранить и закрыть MS Excel. Как только система обнаружит, что процесс больше не выполняется, укажите на sTemplateSharedPath и импортировать указанные изменения в систему. Хорошо, если пользовательский интерфейс приложения не отвечает, когда пользователь редактирует документ Excel.

Я добавил следующее в код выше, прежде чем начать процесс:

objProcess.StartInfo.UseShellExecute = false

Но тогда я получаю эту ошибку:

указанный исполняемый файл не является допустимым приложением для этой платформы ОС

Я надеюсь, что кто-нибудь сможет помочь мне с этим вопросом.

Заранее спасибо.

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 вручную?

Другие вопросы по тегам