2009-08-06 16 views
1

Ich verwende CreateObject(progId) in Vb, um eine pdfDOcument zu erstellen. Aber das Problem ist, dass, nachdem ich fertig bin und das Dokument zu schließen und zu veröffentlichen, Wie kann ich den Prozess herunterfahren?vb.net Wie kann ich die Anwendung beenden, die ich createObject() erstellt habe

Wie kann ich auf den Prozess verweisen und wissen, ob er bereits vom Benutzer geöffnet wurde, bevor ich das Objekt erstellt habe? Und wie kann ich den Prozess beenden, wenn der Prozess nicht ausgeführt wurde, bevor ich das Objekt erstellt habe (pdfDocument)?

Gibt es bessere Strategien als CreateObject() zu verwenden?

+0

CreateObject erstellt keine Anwendung/Prozess. Es instanziiert nur ein Automatisierungsobjekt mit der ProgID. Das ist wahrscheinlich der Grund, warum du keine Hilfe bekommen hast. Die Frage betrifft wirklich den "AcroExch" -Wrapper. –

Antwort

1

Die Lösung, die wir gefunden haben, besteht darin, das Anwendungsobjekt zu erstellen, bevor wir ein Anwendungsobjekt erstellen.

Zum Beispiel:

dim objApp as object = CreateObject("AcroExch.App") 
dim objDoc as Object = CreateObject("AcroExch.document") 

... 
objApp.CloseAllDocuments() 

System.Runtime.InteropServices.Marshal.ReleaseComObject(objApp) 
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDoc) 

Aber beim nächsten Mal werde ich CreateObject nie verwenden. Ich werde versuchen, Framework-Klassen (vor allem die Runtime und Reflection für solche Beispiele) zu verwenden.