Interop.word在前台打开文档

时间:2015-10-28 00:27:35

标签: c# .net interop ms-office

我正在尝试打开现有的Word文档,并将MS Word窗口置于最前面。我使用了以下代码。

var app = new Application{ Visible = true};
app.Documents.Open(path);
app.Activate();

这会在word中打开文档,在我的Windows 7框中将word 2013带到前台。在运行Windows 8.1和Office 2010的最终用户计算机上,它会打开文档,但不会将Word带到前面。 Windows 8或Office 2010是否需要不同/缺少的步骤?

由于

1 个答案:

答案 0 :(得分:0)

尝试Microsoft.VisualBasic.Interaction.AppActivate

Microsoft.VisualBasic.Interaction.AppActivate(app.Caption);

如果这不起作用,请尝试SetForegroundWindow这样的API:

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);

[DllImport("user32.dll", SetLastError = true)]
static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);

private void ShowForeground(Word.Application app)
{
    IntPtr handler = FindWindow(null, app.Caption);
    SetForegroundWindow(handler);
}