Mehrere Word-Instanzen

26/05/2008 - 13:03 von Juergen Grieb | Report spam
Hallo,

aus meiner VBA-Applikation starte ich Word(2003), was auch problemlos
klappt. Gibt es schon eine Word-Instanz, wird eine zweite von mir
angelegt, was auch so gewünscht ist.

Ist nun von mir eine Instanz gestartet und ich klicke in der
Dateiübersicht auf ein x-beliebiges Word-Doc, wird aber nicht (wie von
mir erwartet) eine zweite Instanz gestartet, sondern das Doc an meine
schon gestartet übergeben. Das möchte ich unterbinden.

Starte ich Word über das Startmenü, klappt alles wie gewünscht und ich
habe wieder zwei Instanzen.

Wie kann ich (bei einer schon von mir im Verborgenen gestarteten Word-
Instanz) erreichen, dass ein Doppelklick auf ein Doc ebenfalls eine
zweite Instanz startet? Kann ich meine Instanz "schützen", dass Sie
nur von mir angesprochen /benutzt werden kann?

Gruß Jürgen
 

Lesen sie die antworten

#1 Cindy M.
26/05/2008 - 18:49 | Warnen spam
Hi Juergen,

Es gibt leider keine Möglichkeit, dies zu erreichen. Es liegt an Windows,
und wie die Office-Anwendungen sich in die ROT (eine Tabelle der
laufenden Anwendungen) registrieren. Nur eine Instanz wird dort
registriert (die zuerst gestartete).

Nun ist Word so konzipiert und in Windows registriert, dass möglichst nur
eine Instanz laufen soll. Wird ein Dokument angeklickt sucht es
automatisch die in der ROT eingetragene Instanz. Es wàre zwar möglich,
diesen DDE-Befehl für die Installation zu àndern, so dass ein Dokument
eine neue Instanz starten würde. Aber dann würden alle Dokumente neue
Word-Instanzen starten, was nicht wünschenswert wàre.

Das einzige, was ich mir vorstellen kann, wàre, wenn Deine Anwendung zwei
Instanzen starten würde. Die erste bleibt dem Benutzer; die zweite
verwendet Deine VBA-Applikation (und sorgt auch dafür, dass die erste
Instanz vom Benutzer nicht beendet wird). Ob dass allerdings von der
Firma oder vom Benutzer goutiert wird, kann ich nicht beurteilen.

Etwas, das ich nie probiert habe (die Idee kommt erst in diesem Moment)
wàre, "Deine Instanz" notigenfalls freizugeben. Du könntest
beispielsweise ein Ereignis wie WindowActivate oder DocumentChange
überwachen. Findest es ohne Einwirkung Deiner Anwendung statt, stelle das
Anwendungsobject frei (=Nothing) und starte eine neue Instanz für Deine
VBA-Applikation.

Aus meiner VBA-Applikation starte ich Word(2003), was auch problemlos
klappt. Gibt es schon eine Word-Instanz, wird eine zweite von mir
angelegt, was auch so gewünscht ist.

Ist nun von mir eine Instanz gestartet und ich klicke in der
Dateiübersicht auf ein x-beliebiges Word-Doc, wird aber nicht (wie von
mir erwartet) eine zweite Instanz gestartet, sondern das Doc an meine
schon gestartet übergeben. Das möchte ich unterbinden.

Starte ich Word über das Startmenü, klappt alles wie gewünscht und ich
habe wieder zwei Instanzen.

Wie kann ich (bei einer schon von mir im Verborgenen gestarteten Word-
Instanz) erreichen, dass ein Doppelklick auf ein Doc ebenfalls eine
zweite Instanz startet? Kann ich meine Instanz "schützen", dass Sie
nur von mir angesprochen /benutzt werden kann?




Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister

Rückfragen & Antworten nur in der Newsgroup, bitte!

Ähnliche fragen