Я столкнулся со странной проблемой с событием Process.Exited
в .NET Framework v4.5.2.
У меня есть приложение WPF, которое при нажатии кнопки открывает документ Word через Process
. Я подписываюсь на событие Process.Exited
, чтобы знать, когда документ Word закрыт, чтобы я мог записать некоторый статус в базу данных.
Вот и странное поведение. Предположим, я открыл любой другой документ Word или просто открыл пустой документ; и пытается открыть документ из моего приложения с помощью нажатия кнопки, тогда событие Process.Exited
запускается, как только вызывается Process.Start()
. Аргумент отправителя в Process.Exited
имеет значения как документ, который я только что открыл из приложения нажатием кнопки.
Ниже приведен пример фрагмента кода:
Process p;
private void WordWindow_Loaded(object sender, RoutedEventArgs e)
{
p = new Process();
p.EnableRaisingEvents = true;
p.Exited += P_Exited;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var pinfo = new ProcessStartInfo();
pinfo.FileName = @"C:\docs\Main Doc.docx";
p.StartInfo = pinfo;
p.Start();
}
private void P_Exited(object sender, EventArgs e)
{
}
Кто-нибудь сталкивался с подобной проблемой раньше? Я прошел через аналогичную тему, но не нашел решения. Я начинаю задаваться вопросом, это из-за того, как реализован процесс MS-Word, или из-за сбоя в реализации Process
.
Любая помощь будет оценена.
Спасибо.
WINWORD.exe
процессов вы получите. - person canton7   schedule 12.07.2021winword.exe
при открытии документов Word. Что меня озадачивает, так это то, что когдаProcess.Exited
поднимается, в этом конкретном сценарии возвращается самая последняя открытая информация о документе. Кроме того, я заметил, что при открытии документа поднимаетсяProcess.Exited
. Теперь, когда я закрываю этот документ,Process.Exited
не возникает, так как он уже возник во времяProcess.Start()
. - person abhilashca   schedule 12.07.2021Exited
возникает, поскольку процесс завершился. Это то, что говорит вам событие. Как правило, это происходит с программами, написанными для активации существующих экземпляров вместо запуска новых. Смотрите дубликат. - person Peter Duniho   schedule 12.07.2021