Warum wird WINWORD.EXE nach dem Schließen des Dokuments aus Delphi nicht beendet?

8

Ich habe es geschafft, eines der zugrunde liegenden Probleme, die in meiner Frage wurzeln, zu destillieren: Wie verfolgt _AddRef / _Release Aufrufe für OLE-Automatisierungsobjekte in der folgenden Einheit.

Ich antworte auch auf diese Antwort, nur für den Fall, dass jemand anderes darauf stößt.

Die Frage: Warum wird WINWORD.EXE mit dem folgenden Code nicht immer beendet (manchmal wird es beendet).

Das Gerät kann wahrscheinlich noch mehr getrimmt werden.

%Vor%     
Jeroen Wiert Pluimers 25.05.2013, 19:49
quelle

1 Antwort

6

Beantworten Sie Teil 1:

Kommentieren Sie die Verbindung im folgenden Ereignis:

%Vor%

Das Ereignis wird während der DocumentClose-Methode (...) aufgerufen, dann wird die OLE-Schnittstelle von der FWordApplication-Instanz getrennt und gelöscht.

Ich habe noch nicht herausgefunden, welche Referenz baumelt, aber das hält WINWORD.EXE meistens am Leben.

Beantworten Sie Teil 2:

Manchmal wird WINWORD.EXE beendet, weil das WordApplication_DocumentBeforeClose -Ereignis nicht aufgerufen wird. Der Grund ist, dass der Code so schnell ausgeführt wird, dass Word noch nicht vollständig initialisiert ist, um das Ereignis auszuführen.

    
Jeroen Wiert Pluimers 25.05.2013, 19:49
quelle

Tags und Links