WaitForExit для программ типа MS Word - процесс уже запущен - PullRequest
1 голос
/ 01 октября 2011

В моем приложении я хочу открыть файл * .rtf, а затем дождаться его закрытия. Часто у пользователя есть MS Word, чтобы открыть файлы * .rtf, и вот в чем проблема. Код ниже работает, но только когда процесс "WINWORD" еще не запущен. Когда это так, вызов Process.Start () открывает только новое окно Word, и большая часть данных из объекта Process становится пустой. Я не могу «ждать» процесса, потому что он вызывает исключение. Как я могу справиться с этим? Пожалуйста, помогите.

Process p = new Process();
p.StartInfo.FileName = @"C:\Users\UserName\Desktop\MyFile.rtf";
p.Start();
string name = p.ProcessName;
p.WaitForExit();
Console.WriteLine(name + " has exited");
Console.ReadKey();

* Edit: Я проанализировал некоторые решения и заметил, что если приложение, с помощью которого пользователь открывает файл * .rtf, похоже на Word (может открывать много файлов во многих окнах), я должен ждать только своего окна * .rtf, а не весь процесс. Это было бы глупо. Проблема становится все более сложной. Пожалуйста, помогите.

...