当我们激活它时,为什么Word没有出现?
我们WinForms应用程序与MS Word相互作用,我们生成一个文档时,运行这段代码,我们要显示在Word中我们的应用程序的前面:当我们激活它时,为什么Word没有出现?
[setup w as a Word interop object]
w.Visible = True
w.Activate()
在推出运行Office 2007 XP机器这按预期工作。
On 运行Office 2010的Win7机器该文档加载在我们的应用程序后面并闪烁在任务栏上。
任何想法?
最近我偶然发现了一个类似的问题。我的.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);
}
}
+1良好的解决方法! – 2011-02-10 23:44:12
与Word 2002从XP转换应用& 3赢时通有同样的问题7在Word 2010中打开。找到您打开的第一个文档的以下作品,然后在任务栏中闪烁任何新文档。
打开Word文档后:
document.Activate();
mWordApplication.Activate();
foreach (Word.Window window in document.Windows)
{
window.WindowState = Word.WdWindowState.wdWindowStateMinimize;
window.WindowState = Word.WdWindowState.wdWindowStateMaximize;
}
的策略是其中显示在文档窗口后去。最小化和最大化将文档的窗口放在前面。
您可以对应用程序对象执行相同的操作(如此处建议的http://www.access-programmers.co.uk/forums/showthread.php?t=173871注意:如果窗口最大化开始时最大化而不会最小化),但是如果打开了许多Word文档,则会认为您在Windows中赢得了solitare的游戏...
我不是专家,但我遇到了同样的问题,并找到了我的方式。我无法得到任何其他解决方案的工作,但我只是找到了一个答案,在这里我的问题......
http://david.gardiner.net.au/2010/05/bad-old-days-of-vba-and-opening-word.html
我只是在粗斜体添加一行如下(行)到我的代码和Word文档中的Excel前面开辟了Win 7的计算机上运行的Office 2010:
昏暗wordApplication
设置wordApplication =的CreateObject( “Word.Application”)
Application.ActivateMicrosoftApp xlMicrosoftWord
更多关于为什么这个工作在上面的链接信息。
w.Visible =真 w.Activate()
对我的作品罚款!
查看其他原因。
例如
Dim oWord As Microsoft.Office.Interop.Word.Application = New Microsoft.Office.Interop.Word.Application
Dim oDoc As Microsoft.Office.Interop.Word.Document = oWord.Documents.Open(Path)
Dim range As Microsoft.Office.Interop.Word.Range = oDoc.Range
range.Find.Execute("[NUM]", False, False, , , , , , , _NUM_, 2, False,)
oWord.Visible = True
oWord.Activate()
文献涉及到前面。
我有同样的问题,并通过谷歌做了一些研究后,得出这样的事实,这是从版本7以来Windows的缩进行为。这是某种安全机制,以防止其他应用程序干扰您的工作。一个应用程序(您希望与word进行互操作的程序)不能更改未在同一进程中运行的其他应用程序的z顺序。 我无法贴上有关此事的官方信息的网址 - 我只记得我在网上发现了一些此前的... – 2015-07-24 09:17:50