Ich habe eine Anwendung, die die MS-Word-API verwendet. Ich bleibe stecken, wenn ich versuche, die Funktion Document.Open (Dateiname) zu verwenden, die die Funktion ist, die ein Dokument öffnet. Es spielt keine Rolle, ob ich im Debug- oder Release-Modus laufe. Jede Hilfe wäre willkommen. Vielen Dank, Guy MaromVisual Studio - Debuggen App mit Word-API ist unmöglich
Antwort
Es gibt eine Menge mehr Parameter, die Sie für die Open-Methode benötigen!
object fileName = "MyDocuemnt.docx";
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;
WordApp.Visible = true;
Word.Document aDoc = WordApp.Documents.Open(ref fileName, ref missing,ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible);
aDoc.Activate();
Das Wort (und Office) API von .Net verlangt, dass alle Paramter als Gegensatz zu VBA, daher die lange Reihe von
des fehlenden Schmerz Es ist, aber Sie können einige Wrapper-Klassen machen dies zu verstecken Ihre Hauptanwendungslogik, wenn die Lösung groß und komplex werden soll
1) Der Code läuft gut, wenn ich es als Windows-Dienst auf meinem Computer ausführen. 2) Ich möchte nicht, dass mein Dokument sichtbar ist, also setze ich: WordApp.Visible = Falsch isVisibile = Falsch –
Sie sollten Word nicht als Teil eines Windows-Dienstes ausführen (siehe MSDN). Was versuchst du zu machen? Das sichtbare Bit ist natürlich optional :-) – user73993
Ich habe mehrere Anwendungen mit Word-Automatisierung: 1) Der Dienst - Sendet DOC/DOCX-Dateien an den Drucker. 2) Ein Wort-Add-In, das Automatisierung verwendet, um eine Seriendruck-Datenquelle zu untersuchen. Ich habe gerade festgestellt, dass diese Probleme mit der Tatsache zusammenhängen, dass ich Word in einem anderen Thread als den Hauptthread verwenden. –
Weitere Informationen wären hilfreich. Können Sie eine Kopie Ihres Codes und eine Fehlermeldung posten? –
Was meinst du mit "Ich bleibe stecken"? Was genau passiert (oder passiert nicht, dass du das erwartest)? –
Wenn ich einen Haltepunkt auf diese Zeile setzen: Dim objDoc als Word.Document = mobjWordApp.Documents.Open (CObj (Dateiname)) Wenn ich F10 drücke, passiert nichts und keine Ausnahme wird geworfen. mobjWordApp wird wie folgt instanziiert: mobjWordApp = neue Interop.Word.Application. Die erste Zeile wird in einem anderen Thread ausgeführt. –