Frage zu. new Word.Application()

28/05/2008 - 11:39 von Roland Schumacher | Report spam
Hallo NG

Ich habe auf meinem System 2 Officeversionen. 2007 und 2003.
Ich habe zwei Klassen (Word2007Creator und Word2003Creator) die in den
Verweisen die entsprechenden Interop haben.

Es werden mir auch jeweils die richtigen Creatoren ausgeführt.
In diesen sollte ich das Word starten. Allerdings je nach Creator das Word
2003 oder 2007.

Wie kann ich das? Ich dachte Interop nàme dann schon das richtige Word.
Aber da ich Word 2003 nach 2007 installiert habe kommt jetzt immer 2003
hoch.

if (word == null)
word = new Word.Application();

Zuerst versuche ich aber immer eine bestehende Instanz zu übernehmen.
word = (Word.Application)Marshal.GetActiveObject("Word.Application");
Kann ich hier auch irgend wie nach Versionen unterscheiden?

Gruss
Roland Schumacher
http://blog.geniali.ch/
http://jotd.geniali.ch/
 

Lesen sie die antworten

#1 Frank Dzaebel
28/05/2008 - 21:33 | Warnen spam
Hallo Roland,

Zuerst versuche ich aber immer eine bestehende Instanz zu übernehmen.
word = (Word.Application)Marshal.GetActiveObject("Word.Application");
Kann ich hier auch irgend wie nach Versionen unterscheiden?



"Word.Application.8" ist Word 97
"Word.Application.9" ist Word 2000
"Word.Application.10" ist Word 2002 (XP)
"Word.Application.11" ist Word 2003
"Word.Application.12" ist Word 2007

oder auch APIs dem ROT entnehmen ... à la:

[Laufende Visual Studio Instanz filtern]
http://dzaebel.net/VsInstanz.htm


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

Ähnliche fragen