Virtueller Desktop

19/12/2007 - 21:41 von Thomas Kehl | Report spam
Hallo.

Ich möchte Word starten und das Fenster auf einen virtuellen Desktop legen,
damit es nicht sichtbar ist. Ich kenne ein Tool, das Word so verwendet. Ich
frage mich, ob das mit C# möglich ist? Der Hintergrund ist folgender: Es
sollen in Word versteckt Dokumente ausgedruckt werden. Wenn ich aber den
Prozess mit Visible = false starte, wird Word trotzdem angezeigt. Das Ganze
sollte natürlich nicht nur mit Word funktionieren, sondern mit jeder
Application die mit dem Parameter Print gestartet wird (darum fàllt die
Word-Automatisierung weg).
Kann mir jemand einen Tipp geben, wie ich das erreichen kann? - Vielen Dank!

Beste Grüsse, Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
20/12/2007 - 00:08 | Warnen spam
Hallo Thomas,

Ich möchte Word starten und das Fenster auf einen virtuellen Desktop
legen, damit es nicht sichtbar ist. Ich kenne ein Tool, das Word so
verwendet. Ich frage mich, ob das mit C# möglich ist? Der Hintergrund ist
folgender: Es sollen in Word versteckt Dokumente ausgedruckt werden. Wenn
ich aber den Prozess mit Visible = false starte, wird Word trotzdem
angezeigt. Das Ganze sollte natürlich nicht nur mit Word funktionieren,
sondern mit jeder Application die mit dem Parameter Print gestartet wird
(darum fàllt die Word-Automatisierung weg).
Kann mir jemand einen Tipp geben, wie ich das erreichen kann? - Vielen
Dank!



Ja, ok. Daß dies mit WordAutomation switch für
doc-Dokumente hier sauberer wàre, ist Dir ja -
wie ich Dein Posting interpretiere - bekannt.
Ansonsten generisch gehts natürlich eh nur für
bestimmte Programme und hier kannst Du dann
ggf. über folgende APIs ansetzen:

[Multiple desktop support in Windows]
http://blogs.msdn.com/abhinaba/arch...56197.aspx

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

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

[CreateProcess Function (Windows)]
http://msdn2.microsoft.com/en-us/li...82425.aspx
->"By default, CreateProcessAsUser creates the new process on
a noninteractive window station with a desktop that is not visible
and cannot receive user input."

und dort den Parameter des Typs:

[STARTUPINFO Structure (Windows)]
http://msdn2.microsoft.com/en-us/library/ms686331(VS.85).aspx

oder STARTUPINFOEX (ab Vista /W2008) nutzen.

Das ganze ist aber ggf. nicht so ganz sauber, wenn z.B.
Fehler beim Drucken o.à. stattfinden und diese
Meldungen dem User ggf. nicht angezeigt werden
(können), da ja im Hintergrund etc..

Es gibt auch Möglichkeiten über WMI über
nicht-interaktiv-berechtigte Prozesse.


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

Ähnliche fragen