如何获取Word应用程序的Hwnd / Process Id,并将其设置为Foreground Window

时间:2012-03-01 17:39:12

标签: c# vba office-interop word-vba

我希望我的Word应用程序在自动化完成后进入前台。

Excel中的等效项是直截了当的 - Excel Application对象具有.Hwnd属性,您可以将其与Windows API结合使用:

SetForegroundWindow((IntPtr)excelApp.Hwnd);

但Word应用程序没有.Hwnd属性。

我尝试在此序列中使用Activate():

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

但这不起作用。

我已经看过使用应用程序名称查找进程,但可能有多个Word运行副本。

由于

1 个答案:

答案 0 :(得分:4)

您可能需要在第一个之后迭代processArray。使用word 2010,无论打开多少个实例,任务管理器中只显示一个WinWord。

        System.Diagnostics.Process[] processArray =  System.Diagnostics.Process.GetProcessesByName("WinWord");
        System.Diagnostics.Process word = processArray[0];
        SetForegroundWindow(word.MainWindowHandle);