Adobe PDF ActiveX DLL lässt sich nicht in VB.NET-Projekt laden
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.
-
-
@icewather Schalt mal um von AnyCPU auf x86 oder x64, eines von beiden sollte laufen.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Leider kann ich Adobe Reader weder mit x86 noch mit x64 einbinden - es kommt der gleiche Fehler.
Wenn ich auf x64 gehe, läuft meine Applikation nicht mehr. Da kommen dann andere Fehler
Die adoberfp.dll ist Version 11.0.20.17 vom 28.03.2017
Ich habe auch eine ältere Version getestet aus dem Jahr 2012 - geht auch nicht.
Hat jemand eine weiterführende Idee? Danke -
Guten Tag @icewather
Wahrscheinlich handelt es sich bei der adobertp.dll nicht um eine.Net-Assembly
. D.h. es müsste abgekärt werde, ob überhaupt auf so eine Dll zugegriffen werden kann. Eventuell mitDllImport
. Es gibt dazu sicher Infos im I-Netz.
Freundliche Grüsse
exc-jdbi -
-
@icewather Ich kann diesen EWffekt nachvollziehen.
Die DLLadoberfp.dll
ist keine COM-Komponente, Du kannst sie auf diesem Weg nicht einbinden.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
@icewather Dürfen wir erfahren, was du genau machen willst.
Vielleicht gibt es ja eine andere Möglichkeit (z.B. mittels Boardmittel) das zu realisieren.
Freundliche Grüsse
exc-jdbi -
Danke für die freundliche Nachfrage. Folgendes möchte ich machen:
Ich habe eine Dateiliste mit verschiedenen Dateitypen in einem ListView. Wenn eine Bilddatei angeklickt wird, öffnet sich das Bild in einer PictureBox. Wenn ein PDF angeklickt wird, möchte ich gerne innerhalb des VB.NET Programms den AdobeReader-Viewer in einem kleinen Fenster öffnen - der Benutzer erhält so einen kleinen Einblick in sein PDF. - Vielleicht ist das auch nicht möglich. Wäre einfach schön -
Du könntest das PDF im Webbrowser-Control anzeigen oder eine der vielen Fremdcomponenten benutzen.
Davon gibt es recht teure, professionelle Lösungen, aber auch ein paar kostenlose Varianten.
Eine davon kann sogar kostenlos und kommerziell benutzt werden, ist aber in der Free-Version auf das Anzeigen von 10 PDF-Seiten beschränkt.
Vielleicht reicht das ja?
Hier ein Link: Free Spire.PDFViewer for .NET -
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
@icewather so könnte das auch funktionieren
Ich hab jetzt eine Listbox dafür genommen. Einfach Doppelklick auf die gewünschte Datei in der Listbox.
Es soll lediglich zeigen wie es geht. Verbesserungen vom Syntax und Optimierungen musstest du machen.
Freundliche Grüsse
exc-jdbi
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „exc-jdbi“ ()
-
-
So, nun bin ich endlich dazu gekommen, die Sache anzupacken. Die Browser-Lösung ist cool. Vor allem auch, weil der User im Fenster gleich alles mit dem PDF machen kann, was das WebBrowser-Control zur Verfügung stellt (zb ausdrucken usw.).
Nun bin ich auf den Geschmack gekommen und dachte mir: Dann zeige ich gleich möglichst viele Files im Preview-Modus im WebBrowser-Control. Doch das scheint nicht so einfach. Bilddaten sind die meisten problemlos. Doch Office-Dateien kann der Webbrowser nicht direkt öffnen, d.h. er fragt, ob in Word ect. geöffnet werden soll. -
Die Office-Dateien ab 2007 sind doch im XML-Formt geschrieben und sollten doch browsertauglich sein!? Vermutlich werden die Dateien gezippt, um Platz zu sparen. Gibt es eine Möglichkeit, xlsx und docx innerhalb VB.NET zu öffnen und in einer Windows-Form darzustellen? Ich habe im Web nur aufwendige Lösungen gefunden. zb wird im Hintergrund Word geöffnet, das Dokument geladen, neu als HTML-Datei gespeichert und dann im Webbrowser dargestellt. Aber das geht "ewig" und macht für ein rasches Preview auch nicht wirklich Sinn. Gibt es weitere Möglichkeiten ohne Word oder Excel zu starten?
Danke für einen weiteren Tipp - falls irgendjemand eine Idee hat.
------------------------
Bin noch auf eine Spur gestossen: support.microsoft.com/de-ch/he…asic-to-open-an-office-do
Ich berichte später, ob das funktioniert hatDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „icewather“ ()
-
Ok, ich bin mit den Office-Dateien vorerst gestrandet!
Das habe ich nicht zum Laufen gebracht:
Bin noch auf eine Spur gestossen: support.microsoft.com/de-ch/he…asic-to-open-an-office-doIch berichte später, ob das funktioniert hat
PDFs im Webbrowser
Dann ein weiteres Problem: Wenn ich PDFs im Webbrowser anzeige, kriege ich diese nicht mehr aus dem Webbrowser hinaus. Konkret: Ich kann den Webbrowser nicht "löschen", nicht zurücksetzen, nicht "grau" machen. PDFs werden einfach weiter angezeigt. Die einzige Möglichkeit, die es gibt, ist ein "leeres, graues PDF" zu laden. Aber das ist doch dumm!
Diese Codes nützen nichts:
Deshalb kann ich die im Webbrowser angezeigte PDF auch nicht löschen. Es kommt die Fehlermeldung, dass ein anderer Prozess die Datei geöffnet hat.
Ich habe intensiv im Internet gesucht, aber echt nichts gefunden. Hat jemand aus diesem Forum einen Tipp? -
"Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."
Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
Wie man VisualStudio nutzt? => VisualStudio richtig nutzen -
icewather schrieb:
WebBrowser = New WebBrowser()
Probier mal nur dies:
Allerdings kann ich mir nicht vorstellen, das das nicht reicht. Hast Du ggf. zwei WebBrowser-Instanzen zu laufen und Du bist ggf. auf der falschen?Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Leider geht einfach nichts davon. Immer noch die gleiche Fehlermeldung, dass die Datei nicht gelöscht werden kann, weil sie von einem anderen Prozess verwendet wird. Interessant ist auch, dass das PDF im Webbrowser auch nach webbrowser = new webbrowser() immer noch im Webbrowser dargestellt wird, so als hätte ich keine neue Navigation oder was auch immer gemacht.
Mein Code:
Quellcode
-
- Private Sub ResFileDel(vDelAll As Boolean)
- If LöschWarnung("diese Datei") = False Then Exit Sub
- Dim vDatei As String = liResDateiPfad.SelectedItems(0).SubItems(1).Text & liResDateiPfad.SelectedItems(0).Text
- Dim vDateiIdTemp As Long = liResDateiPfad.SelectedItems(0).SubItems(2).Text
- dbDao = dbEn.OpenDatabase(vdbPath, Nothing, False)
- If vDelAll = True Then
- If File.Exists(vDatei) Then
- Try
- File.Delete(vDatei)
- Catch ex As System.IO.IOException
- If (Path.GetExtension(vDatei) = ".jpg") Or (Path.GetExtension(vDatei) = ".png") Or (Path.GetExtension(vDatei) = ".gif") Or (Path.GetExtension(vDatei) = ".jpeg") Or (Path.GetExtension(vDatei) = ".bmp") Then
- picPersBox.ImageLocation = Nothing
- picPersBox.Image = Nothing
- picPersBox.Image = Image.FromFile(Nothing)
- File.Delete(vDatei)
- ElseIf (Path.GetExtension(vDatei) = ".pdf") Then
- WebBrowser.Navigate("About:Blank")
- WebBrowser.Dispose()
- WebBrowser = New WebBrowser()
- WebBrowser.Refresh()
- Threading.Thread.Sleep(3000)
- File.Delete(vDatei)
- WebBrowser.Visible = False
- 'asdfasdf
- End If
- End Try
- Else
- If MsgBox("Die Datei: " & vDatei & zs & "kann nicht gefunden werden. Soll der Eintrag aus der Datenbank gelöscht werden?", MsgBoxStyle.Question, "Fehlende Datei") = MsgBoxResult.No Then Exit Sub
- End If
- End If
- dbDao.Execute("DELETE FROM File WHERE FileId = " & vDateiIdTemp)
- dbDao.Close()
- ModuleDataBinding.LiResDateiPfad_fill()
- End Sub
-
icewather schrieb:
Interessant ist auch, dass das PDF im Webbrowser auch nach webbrowser = new webbrowser() immer noch im Webbrowser dargestellt wirdRodFromGermany schrieb:
Hast Du ggf. zwei WebBrowser-Instanzen zu laufen und Du bist ggf. auf der falschen?New WebBrowser
und ordne die Instanzen zu.
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Wie heißt dein Webbrowser Steuerelement das auf der Form liegt?"Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."
Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
Wie man VisualStudio nutzt? => VisualStudio richtig nutzen -
ich habe das Steuerelement einfach Webbrowser benannt, wie oben sichtbar. Nun jedoch als weitere Fehlerquelle umbenannt in ResWebBrowser - aber der Fehler bleibt.
Zu RodFromGermany: Ich verstehe nicht:Finde in Deinem Projekt New WebBrowser und ordne die Instanzen zu.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „icewather“ ()
-
Tags
-
Ähnliche Themen
-
Adobe AIR lässt sich nicht deinstallieren
CatchTheBird - - Off-Topic -
ActiveX DLL importieren? Aber wie?
KaterKarlo - - Sonstige Problemstellungen
-
5 Benutzer haben hier geschrieben
- icewather (9)
- RodFromGermany (7)
- mrMo (3)
- exc-jdbi (3)
- simpelSoft (1)