Ich mache mehrere Dinge mit einem Word-Dokument im Hintergrund und manchmal, wenn die App fehlschlägt, wird eine Instanz von MS Word im Hintergrund ausgeführt. Beim Neustart versucht es, die gleiche Datei zu öffnen, und es gibt einen Strom von Problemen im Zusammenhang damit.Überprüfen Sie, ob das Word-Dokument bereits geöffnet ist, bevor Sie es in C# öffnen
Ich würde gerne verstehen (konnte hier keine passende Antwort finden), wie man überprüft, ob die Datei, die ich öffnen möchte, bereits geöffnet ist.
Mein Code:
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
Document wordDoc = new Document();
wordDoc = wordApp.Documents.Open(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
wordApp.Visible = false;
Wie kann ich für die Datei, bevor wordApp.Documents.Open
Ausführung ist bereits geöffnet überprüfen?
Danke!
stand ich ein ähnliches Problem mit dem Excel-Interop-API, wo, wenn Sie COM-Objekte nicht richtig loslassen, wird die App einfach weiter ohne Fenster läuft auch nach Sie rufen die 'Quit()' - Methode auf. Anstatt zu überprüfen, ob das Dokument bereits geöffnet ist, sollten Sie sicherstellen, dass Word von vornherein korrekt angeordnet wird. [Probieren Sie diesen Thread aus] (https://stackoverflow.com/questions/6777422/disposing-of-microsoft-office-interop-word-application), ist die Wahrscheinlichkeit groß, dass dies der Fall ist – Nik
Kann nicht gesucht werden, wenn die Datei geöffnet ist oder System.IO nicht verwendet wird. https://stackoverflow.com/questions/876473/is-there-a-way-to-check-if-a-file-isin-use#answer-937558 –
Tha Nik Nik. Das mache ich schon, wenn die App fertig ist. Es gibt einige Umstände, unter denen es fehlschlagen kann und diese Instanz ausgeführt wird. Ich möchte das gerne beenden, aber wenn die App erneut ausgeführt wird, wird eine ganz neue Instanz erstellt. Ich vermute, dass die eigentliche Frage "Wie töte ich eine bestehende Version von MS Word, die im Hintergrund läuft" sein sollte? –