angezeigt wird Ich verwende C#, um eine Schaltfläche für IE zu erstellen, und diese Schaltfläche führt bestimmte Aktionen durch, die alle davon abhängig sind, dass das Dokument ein PDF-Dokument ist. Ich versuche einen Wächter einzurichten, der jegliche Aktion verhindert, wenn der Dokumenttyp kein PDF ist, aber nicht sicher ist, wie der IE das Dokument an Adobe und den Leser übergibt. Ich benutze beide SHDocWv haben sich die WebBrowserClass-Objekte angeschaut und sind mir nicht sicher, wie ich das herausfinden soll. irgendwelche Vorschläge?Wie finde ich heraus, welche Art von Dokument in IE
Antwort
Es ist ein wenig problematisch zu tun dieses AFAIK.
Wert von IWebBrowser2 :: Typ Eigenschaft auf welche Plug-In installiert haben, hängt das PDFs behandelt, weil einige Plug-ins HTML-Wrapper für die PDF-Datei erstellt (wie Adobe), so dass Sie "HTML-Dokument" als Typ erhalten und einige Plug-Ins tun dies nicht (wie Foxit), so dass Sie sich nicht ausschließlich darauf beziehen können.
Also, wenn Sie PDF-Dateien mit HTML-Wrapper bekam können Sie IHTMLDocument2 verwenden :: mime zur genauen Art des Dokuments herausfinden (JPEG/GIF/PNG/etc. Dateien werden alle in HTML vom Browser verpackt). Aber wie ich weiß, ist es auch unzuverlässig, zum Beispiel auf meinem Rechner gibt es "Firefox Document" für HTML-Dokumente zurück, weil .html-Dateien mit Firefox verknüpft sind: s Aber ich habe nicht getestet, ob dies auch bei PDFs der Fall ist.
Another Optionen ist GetUrlCacheEntryInfoEx API-Aufruf zu verwenden Datei im lokalen Browser-Cache zu erhalten, das Dokument speichert, lesen Sie es dann (nur der Anfang der Datei, denke ich nur die ersten 256 Bytes wichtig sind) und rufen FindMimeFromData mit Daten, die Sie gerade gelesen haben, und es wird Mime-Typ zurückgeben.
prüfen MIME-Typ des Dokuments oder der window.location.href von Web-Browser sehen ... Wenn pdf angezeigt wird, würden Sie in der Lage, es zu finden ...
Eine weitere gute Möglichkeit ist die folgende ..
1] Cast des Document-Objekt zu IPersist und extrahieren Sie die CLSID mit .GetClassID (..) zu tun. 2] pInvoize ProgIDFromCLSID, um die progId zu extrahieren 3] Vergleichen Sie die progID mit bekannten COM-Objekten/Anwendungen.
- 1. Wie finde ich heraus, welche Version von TinyMCE ich verwende?
- 2. Wie finde ich heraus, welche Version von reportlab ich verwende?
- 3. Wie finde ich heraus, welche JAR-Anwendung nicht verwendet wird?
- 4. Wie finde ich heraus, welche Version von Sybase läuft?
- 5. Wie finde ich heraus, welche Version von mod_perl installiert ist?
- 6. Wie finde ich heraus, welche Sprachen in EnterpriseDB geladen werden?
- 7. Wie finde ich heraus, welche Play-Version ich verwende?
- 8. Wie finde ich heraus, welche Bibliotheken eine Windows-Exe verwendet?
- 9. Wie finde ich heraus, welche Visual Studio-Erweiterung Speicherlecks verursacht?
- 10. Wie finde ich heraus, welche Klasse einen Fehler druckt?
- 11. Wie finde ich heraus, welche Gruppe ein bestimmter Benutzer hat?
- 12. Wie finde ich heraus, welche Zeichentaste gedrückt wurde?
- 13. Wie finde ich heraus, welche Nachrichten ein Objekt versteht?
- 14. Wie finde ich heraus, welche JavaScript-Ereignisse ausgelöst wurden?
- 15. Wie finde ich heraus, welche Container ein bestimmtes Volumen haben?
- 16. Wie finde ich heraus, welche settings.xml-Datei maven verwendet
- 17. Wie finde ich heraus, welche JDK-Version Eclipse verwendet?
- 18. Wie finde ich heraus, welche Javascript-Bibliothek besitzt $
- 19. Wie finde ich heraus, welche DLLs eine ausführbare Datei lädt?
- 20. Finde heraus, ob/welche BLAS-Bibliothek von Numpy benutzt wird
- 21. Wie finde ich heraus, was svchost macht?
- 22. Wie finde ich heraus, wo NUnit hängt?
- 23. Wie finde ich heraus, welche CVS-Tags welche Dateien und Pfade abdecken?
- 24. Wie finde ich meinen ISP heraus?
- 25. Wie finde ich heraus, welche Gläser und in welcher Reihenfolge von einem Klassenlader geladen werden?
- 26. Wie finde ich den aktuellen Überlaufprüfkontext heraus?
- 27. Wie finde ich heraus, worauf mach_msg_trap wartet?
- 28. Wie finde ich welche Version von Dawg?
- 29. Wie finde ich heraus, ob mein HTML-Dokument in Ruby wohlgeformt ist?
- 30. Wie finde ich heraus, wohin mein Gedächtnis geht?
URL kann nicht überprüft werden, da einige Websites Abfragezeichenfolgen ohne "pdf" in der Adresse zurückgeben. Kannst du mir sagen, wie man auf die Mime-Typen und von welcher Klasse/Objekt zugreifen kann? – Grant