Hallo Leute
ich stelle in einer Form mit eingebettetem WebBrowser ein PDF dar. Nachdem die Form geschlossen wird möchte ich das Dokument vom System löschen. Dazu habe ich folgendes gemacht.
browserForm.Dispose();
browserForm = null;
GC.Collect();
System.IO.File.Delete(pathPDF + fileNamePDF);
Leider kommt dabei eine IOException da das Dokument noch immer alloziert ist..
Was sol ich da tun?
vor allem nit mit dem GC arbeiten. Greif auf das dokument direkt zu, und sag close(). wäre wohl am einfachsten
gruß apollo
edit: achso löschen, hm gute frage, hab ich auch noch nie gemacht ^^
Auf das Dokument kann ich soweit ich das sehe nicht zugreifen um es zu schliessen..
Wiso nicht mit GC arbeiten? Wollte forcieren, dass er aufräumt weil ich mir gedacht habe dass irgend ein Objekt das File noch immer alloziert hat..
irgend eine andere Idee
Vielleicht kannst du bevor die Form schließt noch auf den eingebetteten WebBrowser zugreifen und ihm irgendwie sagen, dass er das Dokument schließen soll.
Nö das Dokument kann nicht geschlossen werden. Aber ich habe es geschafft, habe einfach alle Objekte auf null gesetzt und mit GC.Collet() aufgeräumt.
Danke für Eure Unterstützung
Hallo Leute,
ich hab ungefähr das gleiche Problem.
Ich zeige in meinen WebBrowser ein PDF-Dokument an, welches bei mir lokal liegt. Und das seit heute früh, immer wenn das Programm gestartet wird.
Und jetzt kommt die Fehlermeldung weiter unten.
Dispose oder GC.Collect(); wie in diesen Beitrag weiter oben steht, funktioniert das nicht.
Jemand ne Idee?
mfg
Soweit ich weis wird das AcrobatReader PlugIn in einem extra Prozess gestartet welcher dann in den IE eingehängt wird. Es könnte sein das du dein Programm schließt aber der Prozess vom Reader weiterläuft (schau mal im Task-Manager).
gruss
tscherno
Könnte nicht nur, ist so.
Außerdem kann man den Reader einfach per ActiveX benutzen ohne dafür den Webbrowser zu benutzen.
Könnte nicht nur, ist so.
Außerdem kann man den Reader einfach per ActiveX benutzen ohne dafür den Webbrowser zu benutzen.
Aha, und wie?
Mich würde noch interresieren was an GC Sache dran ist.
mfg
Choose Toolbox Items -> COM -> Adobe PDF Reader. Und aufs Formular.
Diese Fehlermeldung bekommt man, wenn eine andere Version des Readers installiert ist, als die mit der man entwickelt.
System.Runtime.InteropServices.COMException (0x80040154): Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
bei System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
bei System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
bei System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstance()
bei System.Windows.Forms.AxHost.GetOcxCreate()
bei System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
bei System.Windows.Forms.AxHost.CreateHandle()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.AxHost.EndInit()
Ich will den Benutzer die Adobe Reader Version aber nicht vorgeben.
Ich werde mich wohl doch eher auf die Tasks konzentrieren.
Du kannst ja die passenden DLLs mit ausliefern.
Allerdings weiß ich da nicht wie es mit den Lizenzrechtlichen Sachen aussieht.