Fernsteuerung Word 2007

23/10/2007 - 14:24 von Andreas Wenning | Report spam
Hallo,

in meiner C# App steuere ich Word fern. Das klappt alles wunderbar.
Nachdem ich das Worddokument öffne erhàlt Word den Focus bzw Word ist in
Topposition.

Wenn ich das gleiche mit Word2007 mache, wird das Worddokument zwar
geöffnet, aber meine
Application bleibt im Vordergrund und blinkt in der Taskleiste.

Hat jemand eine Idee, wie ich Word dann in den Vordergrund bringe ?


Danke
Andreas
 

Lesen sie die antworten

#1 Frank Dzaebel
23/10/2007 - 20:35 | Warnen spam
Hallo Andreas,

in meiner C# App steuere ich Word fern. Das klappt alles wunderbar.
Nachdem ich das Worddokument öffne erhàlt Word den Focus bzw Word ist in
Top-Position. Wenn ich das gleiche mit Word2007 mache, wird das
Worddokument zwar geöffnet, aber meine
Application bleibt im Vordergrund und blinkt in der Taskleiste.
Hat jemand eine Idee, wie ich Word dann in den Vordergrund bringe?



Zum einen gibt es folgende Möglichkeiten:

[New program window appears behind all other open windows on a Windows
2000-based, Windows XP-based, Windows Server 2003-based, or Windows
Vista-based computer]
http://support.microsoft.com/kb/886217/en-us

[ForegroundLockTimeout]
http://technet2.microsoft.com/windo...91033.mspx

[ForegroundFlashCount]
http://technet2.microsoft.com/Windo...a1033.mspx

[FlashWindow Function (Windows)]
http://msdn2.microsoft.com/en-us/li...79346.aspx


Dann ggf. direkt mit SetForegroundWindow:

[Grafik C#, screen]
http://groups.google.com/group/micr...03bba5cca0


Zum anderen hast evtl. eine gewisse Race-Condition
(allerdings wegen FlashTimeout rel. unwahrscheinlich),
ob sich Deine Haupt-Form zuerst öffnet, oder Deine
Word.Application zuerst Visible wird. Der letzte
gewinnt normal. Also, ggf. so implementieren:

bool firstTime = true;
private void Form1_Activated(object sender, EventArgs e)
{ if (!firstTime) return;
Word.Application app = new Word.Application();
app.Visible = true; firstTime = false;
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen