gpt4 book ai didi

.net - 为什么我们激活它时Word没有 "come to front"?

转载 作者:行者123 更新时间:2023-12-04 11:15:23 27 4
gpt4 key购买 nike

我们的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com