Как проверить, закрыто ли MS word в C#
Я делаю приложение на C#, которое открывает exe-файлы, такие как блокнот, калькулятор.
Итак, моя цель состоит в том, что когда я открываю exe-файл, такой как Word, кнопка создается автоматически
а потом, когда я закрою приложение Word, кнопка будет удалена.
Каждое приложение будет иметь свою собственную кнопку при запуске.
Я пытался это сделать, но у меня есть некоторые проблемы с закрытием приложения.
Вот что я сделал:
var applicationWord = new Microsoft.Office.Interop.Word.Application(); applicationWord.Visible = true; applicationWord.DocumentBeforeClose += DocumentBeforeClose; if (applicationWord.Visible == true) { button = new Button(); button.Image = Properties.Resources.word_80; PIC_Barre.Controls.Add(button); button.AutoSize = true; // button.Tag = proc.Id; PIC_Barre.Controls.Add(button); foreach (Process proc in Process.GetProcessesByName("WINWORD")) { if (proc.ProcessName.Contains("WINWORD")) { proc.WaitForInputIdle(); { Thread.Sleep(500); SetWindowPos(proc.MainWindowHandle.ToInt32(), (int)SetWinPos_ZOrderOpt.HWND_TOPMOST, 0, 0, 0, 0, (int)(SetWinPosFlags.SWP_NOSIZE | SetWinPosFlags.SWP_NOMOVE)); } button.Click += (s, e) => { ShowWindowAsync(proc.MainWindowHandle, (int)ShowWindowCommands.Normal); }; proc.Exited += (s, e) => { var method = (Action)(() => PIC_Barre.Controls.Remove(button)); // button.Visible = false; if (button.InvokeRequired) { button.Invoke(method); } }; } } }
Что я уже пробовал:
Моя проблема заключается в том, как проверить, когда окно MS Word закрыто, чтобы кнопка была удалена.
[no name]
http://www.codeproject.com/Questions/1124792/Csharp-how-to-check-if-an-exe-is-open-or-closed