我们的 winforms 应用程序与 MS Word 交互,我们在生成文档并希望在应用程序前面的 Word 中显示它时运行此代码:
[setup w as a Word interop object]
w.Visible = True
w.Activate()
推广到 时运行 Office 2007 的 XP 机器 这按预期工作。
在 Win7 机器运行 Office 2010 文档在我们的应用程序后面加载并在任务栏上闪烁。
有任何想法吗?
最佳答案
我最近偶然发现了一个类似的问题。我的 .NET 程序称为 COM 应用程序,但在 Win7 上,它有时既不会出现在任务栏中,也不会出现在桌面上。我无法真正找到造成这种情况的原因,但我编写了以下函数来解决这个问题:
[System.Runtime.InteropServices.DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
private static void BringAppToFront() {
foreach (var p in System.Diagnostics.Process.GetProcesses().Where(p => p.ProcessName == "COMInstanceName")) {
if (p.MainWindowHandle.ToInt32() != 0)
SetForegroundWindow(p.MainWindowHandle);
}
}
关于.net - 为什么我们激活它时Word没有 "come to front"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4955366/