Я хочу разработать приложение для Windows на C #, управляющее документами Word.Я хочу признать, что другое приложение Word открывается другим способом (например, из меню Пуск Windows), и я хочу создать предупреждение об этом.
Пользователь может открыть документы Word из главного окна этого приложения, например, так:жестко запрограммированный тест, запущенный при нажатии кнопки теста:
myApp = new Word.Application();
Word.Document mydoc1 = myApp.Documents.Open("C://test/doc1.docx");
Word.Document mydoc2 = myApp.Documents.Open("C://test/doc2.docx");
Пользователь может перетаскивать тексты или изображения из дерева в главном окне этого приложения в эти открытые документы (без проблем).
Нокогда пользователь открывает новое приложение Word другим способом, чем в этом приложении (например, из меню «Пуск» или дважды щелкнул WINWORD.EXE и т. д.), работа с этим приложением очень запутанная, поскольку перетаскивание работает правильно только на управляемыхдокументы, открытые этим приложением.
Я решаю это с помощью инструкции для пользователя, что «никакое другое приложение Word не должно быть запущено», и приложение будет предупреждать об этой ситуации.
Я обнаружил, что проверка при запуске приложения проста (что-то вроде этого):
foreach (Process lP in Process.GetProcesses())
{
if (lP.ProcessName == "WINWORD")
{
MessageBox.Show("Word is running, close please");
return;
}
}
Но я не знаю, как распознать ситуацию, когда новое другое Слово открывается впоследствиикогда мое приложение уже запущено.Я думаю, что эта проверка будет периодически запускаться при некоторой отметке времени, но я не знаю, как распознать «мое приложение Word», запущенное моим приложением, из второго «приложения чужого слова», запущенного снаружи.