Как получить Hwnd / Process Id для приложения Word и установить в качестве окна переднего плана - PullRequest
5 голосов
/ 01 марта 2012

Я хочу, чтобы мое приложение Word появилось на переднем плане после завершения автоматизации.

Эквивалент в Excel простой: объект приложения Excel имеет свойство .Hwnd, которое можно использовать вместе с Windows API:

SetForegroundWindow((IntPtr)excelApp.Hwnd);

Однако приложение Word не имеет свойства .Hwnd.

Я пытался использовать Activate () в этой последовательности:

wordDoc.Activate();
wordApp.Activate();

но это не работает.

Я посмотрел, как найти процесс по имени приложения, но может быть запущено несколько копий Word.

Спасибо

Джо

1 Ответ

4 голосов
/ 01 марта 2012

Возможно, вам придется выполнить итерацию processArray за пределами первого. Со словом 2010 в диспетчере задач отображается только один WinWord независимо от того, сколько экземпляров открыто.

        System.Diagnostics.Process[] processArray =  System.Diagnostics.Process.GetProcessesByName("WinWord");
        System.Diagnostics.Process word = processArray[0];
        SetForegroundWindow(word.MainWindowHandle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...