Word wird aus C#-Programm im Entwurfsmodus gestartet

26/05/2009 - 15:39 von Thomas Meutzner | Report spam
Hallo,

ich habe ein kleines Problem mit der Ansteuerung von Word aus einem C#
Programm heraus.
Ich starte Word mit dem Aufruf von
"Marshal.GetActiveObject("Word.Application")" und fülle dann
entsprechend die Textmarken im Dokument mit Werten.
Als Word-Dokument wird eine Word-Vorlage (dot-Datei) geöffnet.

Code zum Laden des Dokumentes:
// Laden der Word-Vorlage
mCurrentDocuments this.mWordApplication.GetType().InvokeMember("Documents",
BindingFlags.GetProperty, null, this.mWordApplication, new object[0]);

mCurrentDocuments.GetType().InvokeMember("Add",
BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null,
mCurrentDocuments, new object[] { templateFile });

// Aktuelles Dokument holen
mCurrentDocument = this.mWordType.InvokeMember("ActiveDocument",
BindingFlags.GetProperty, null, this.mWordApplication, new object[0]);


Das Problem ist, dass Word immer im Entwurfsmodus gestartet wird.
Kann man dies àndern?
Vielen Dank für Eure Hilfe
MfG
Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
26/05/2009 - 21:23 | Warnen spam
Hallo Thomas,

Ich starte Word mit dem Aufruf von
"Marshal.GetActiveObject("Word.Application")"



das macht das aktuell geöffnete Word auf
und schlüge fehl, wenn Word nicht offen ist.
Aber nicht schlecht ... mal einer, der
OptionalParamBinding kennt.

[Spàte Bindung bei C# am Beispiel Word]
http://dzaebel.net/LatebindWord.htm

was ist denn konkret im offenen Word geladen.
Welche Office Version? Wie genau ist "templateFile"
definiert? Warum eigentlich latebind - ich meine, es
ist nicht unerlaubt, aber man benötigt es ja nicht
unbedingt. Was exakt zeichnet für Dich den
Entwurfsmodus aus? Es gàbe ja auch noch einen
[Alt-F11] Entwurfsmodus.
BTW: Lass die m-Benennung der Variablen
lieber weg. Ungarische Notation ist unter C# .NET nur
in Ausnahmefàllen angesagt - auch keine Membervariablen.


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

Ähnliche fragen