Suchergebnisse

Suchergebnisse 1-23 von insgesamt 23.

  • Benutzer-Avatarbild

    Hi@all Eigentlich kennt das ja jeder. Die Vorschau bei einem OpenFileDialog oder im Explorer. Doch wie kann man dieses im eigenen Programm nutzen? Windows stellt dafür das Interface IPreviewHandler zur Verfügung. Dieses Beispiel zeigt wie es funktioniert. Das schöne an diesem Interface ist, das es unabhängig von den installierten Programmen arbeiten kann. Bedeutet, sofern für eine bestimmte Datei ein PreviewHandler in der Registry vorhanden ist, wird dieser verwendet um eine Vorschau anzuzeigen.…

  • Benutzer-Avatarbild

    Hi Na ja. Im Explorer heißt das Fenster rechts Vorschau und das Interface dazu IPreviewHandler. Also ja, ist eine Preview. , wahrscheinlich auch weil die Preview nur einen eingeschränkten Funktionsumfang besitzt. Mir ist gestern, so beim sinieren über den Ablauf des Codes, wahrscheinlich noch ein "ID 10 T"-Fehler aufgefallen. Das werde ich die Tage noch ein klein wenig abändern. Ach komm schon. So viele APIs sind es doch gar nicht. Ich hab sogar noch ein optionales Interface weggelassen. Dafür d…

  • Benutzer-Avatarbild

    Hi@all Ich hab mal die Logik, welcher PreviewHandler wann geladen werden soll, ein wenig geändert. Im groben ist es aber so geblieben wie es ist. Also wer sich das Bsp. bereits heruntergeladen hatte, im Ausgangspost hab ich den Download erneuert. Es wäre evtl. für andere hilfreich, wenn Ihr den Code testet und einen Kommentar da lasst, ob bei Euch die Anzeige einer PDF problemlos funktioniert. Speziell dann, falls ihr den AcrobatReader nutzt. Von mir aus auch falls ihr einen anderen PDF Betracht…

  • Benutzer-Avatarbild

    @Joshi Uii, ok. Das schau ich mir auf jeden Fall an. Mal schauen was da anders ist. Wobei ich letztens mal was im Zusammenhang mit dem Preview von den Powertoys und PDF gelesen hatte das es da Probleme gab. Vllt ist das ja auch schon behoben worden. @RodFromGermany Das mit den Icons ist ja der zusätzlicher Code, den der Explorer nicht verwendet und ist der optionale Code am Ende per IShellItemImageFactory. Der Explorer zeigt da einfach nur "keine Vorschau möglich". Ja das mit den älteren Program…

  • Benutzer-Avatarbild

    Zitat von RodFromGermany: „Allerdings habe ich das Fenster per Ancor an allen 4 Seiten angepint.“ Ahh, ok. In meinem Code aus dem anderen Thread, hatte ich verhindert das das Fenster (evtl auch die Preview-Picturebox) eine bestimmte Größe unterschreitet. Edit: Der alte Code ist hier zu finden. Adobe PDF in WebBrowser darstellen Hier müsste man entsprechend Activator.CreateInstance durch die API CoCreateInstance ersetzen und die Logik wann welcher Handler geladen werden soll ändern. Ist sicher au…

  • Benutzer-Avatarbild

    @Joshi Ich hab mir mal die PDF Geschichte von den Powertoys angeschaut. So wie ich das ganze sehe, ersetzt Powertoys, wenn man das möchte, den eingetragenen PDF-PreviewHandler durch seinen eigenen PreviewHandler. Finde ich jetzt nicht so prickelnd. Ansonsten nutzt Powertoys den Namespace Windows.Data.Pdf um die PDF zu rendern. Was da drin steckt müsste man sich anschauen. Edit: Also es gibt da wohl eine Windows.Data.pfd.dll im System32 Ordner. Diese DLL exportiert eine Funktion PdfCreateRenderer…

  • Benutzer-Avatarbild

    @GOKTerek Es freut mich wenn Dir mein Bsp. weiter hilft. Sofern der Explorer das in der Vorschau anzeigen kann, kann mein Code das auch. Beide verwenden die gleichen COM-Interfaces. Anpassen solltest meinen Code auf jeden Fall. Das hier ist ja nur ein Bsp wie es grundsätzlich funktioniert.

  • Benutzer-Avatarbild

    Hi Ich bin derzeit im Urlaub. Was ich aber sagen kann ist, wenn es schon im Explorer Probleme gibt, dann hat mein Code das gleiche Problem. Mein Code macht nichts anderes wie der Explorer auch um die Preview anzuzeigen. Von daher müsste man erstmal herausfinden warum die Preview im Explorer mal geht und mal nicht.

  • Benutzer-Avatarbild

    Hi Die Icon-Funktion hab ich als Zusätzliches Feature eingebaut. Der Explorer zeigt da einfach nur an, dass er da keine Vorschau erstellen kann. Wie auch immer, bei meinem letztem Test war das erstellen der Preview von Exceldateien kein Problem. Wie geschrieben, wenn der Explorer hier schon ein Problem hat eine Preview zu erstellen, dann haben alle Codes, die den IPreviewHandler nutzen das gleiche Problem. Evtl. ist durch ein Windows/Office-Update mal wieder was kaputt gepatcht worden. Wäre ja n…

  • Benutzer-Avatarbild

    @GOKTerek Urlaub beendet. Deswegen ein erneuter Test. Funktioniert bestens. Auch mit Exceldateien (Office 365). Hier ein Link wie man die Preview von Officedateien reparieren/überprüfen kann: hasslinger.com/index.php/de/bl…ie-temp-umgebungsvariable Falls sich mal die Preview vom Edge für PDFs eingenistet hat, obwohl der AcrobatReader installiert und dieser der Standardbetrachter ist, dann folgende Reg importieren bzw selbst den Key ändern. Dann funktioniert auch die Preview mit den AcrobatReader…

  • Benutzer-Avatarbild

    Hi Klar kannst Du den Code in Deiner Software einbauen. Da das ganze gut durch MS dokumentiert ist wie es funktioniert, erhebe ich auch kein Anspruch auf Nennung als Autor. Kannst Du gern machen, ist aber kein muss. Zu dem Problem kann ich im moment nichts sagen. Ist mir bisher so, wie in Deiner Konstellation, nicht aufgefallen bzw. habe ich nie ausprobiert. Eventuell hab ich da noch einen Fehler im Code der einen PreviewHandler nicht korrekt beendet. Dann müsstest Du auch entsprechende Prozesse…

  • Benutzer-Avatarbild

    @DTF Ich hatte festgestellt das, insbesondere der PDF-PreviewHandler vom AcrobatReader, beim Initialisieren Probleme macht und daher der Fallback auf CLSCTX_INPROC_SERVER. Standard wäre in diesem Fall CLSCTX_LOCAL_SERVER. Daher der zweite Aufruf falls der erste fehlschlägt. Erst wenn beide Möglichkeiten fehlschlagen gibt die Funktion IntPtr.Zero zurück. Da die meisten APIs und Interfaces S_OK, in wenigen Fällen auch einen anderen hResult, als Erfolg zurückgeben, interessiert mich persönlich nich…

  • Benutzer-Avatarbild

    Zitat von DTF: „Wird das in VB nicht als Fehler gemeldet?(Oder hast du was in der Mappe umgestellt?)“ Kann ich Dir im Moment gar nicht sagen. Komme gerade nicht an meinem Code. Aber wenn da was wäre, dann hätte ich schon beim erstellen des Code gesehen das da was im Argen ist. Umgestellt an der Mappe habe ich nichts. Edit: Oh, komme ja doch dran. Nope. VB zeigt hier keinen Fehler.

  • Benutzer-Avatarbild

    Zitat von DTF: „Ich meinte sollte das nicht als Fehler gemeldet werden...“ Sollte mit Sicherheit, macht VB aber nicht. Why? I don't know. Aber ja, ich gebe Dir da Recht.

  • Benutzer-Avatarbild

    Hi. Ich bin derzeit im Urlaub und kann daher erstmal nichts zu sagen. Was ich aber sehe ist, das der zusätzliche Code, der ja nichts mit mit dem IPreviewHandler zu tun hat, das Icon vom IrfanView lädt. Demnach gibt es bei Dir kein Handler für WMF Dateien oder der Handler ist defekt bzw wurde verdreht. Step einfach mal den Code durch und schau mal ob ich irgendwo ein Dispose oder Release vergessen habe.

  • Benutzer-Avatarbild

    @Dideldum Ich hoffe Du hast noch ein paar von diesen WMF Dateien die da Probleme verursacht haben. Dann könntest mal ein zwei Dateien davon, in ein ZIP verpackt, hier hochladen und ich könnte mir das mal anschauen. Kann sein das alte WMFs von der Preview wegen Sicherheitsbedenken ausgeschlossen wurden. Dennoch sollte das kein Absturz verursachen. Ansonsten würde der Explorer ja auch abstürzen weil der nutzt ja das gleiche Interface für die Preview.

  • Benutzer-Avatarbild

    @Dideldum Probiere mal ein paar kleine Änderungen. Zum einen sind die Funktionen IsAlphaBitmap und GetAlphaBitmapFrom... entfallen. Dafür gibt es was neues. (Versteckter Text) Zum anderen könntest auch unter " ' Optional falls die PreviewHandler fehlschlagen!" folgendes machen (Versteckter Text) Damit werden Dir zumindest Deine WMF, die nicht wollen, direkt geladen und auch als Bild angezeigt.

  • Benutzer-Avatarbild

    Hi Du kannst natürlich die Bilder selbst passend und formfüllend skalieren. Allerdings ist bei kleinen Bildern, die hochskaliert werden, die Qualität nicht besonders schön.

  • Benutzer-Avatarbild

    Hi. Preview.ResizePreview funktioniert nicht bei allen Dateiformaten. Steht auch so als Kommentar im Code. Alternativ musst Du halt eine Weiche für Bilder einbauen damit Bilder nicht über den IPreviewHandler geladen werden. Bilder kannst ja ganz normal mit .NET Mitteln laden und passend skalieren. Allerdings verwendet VB.NET noch GDI+ für Bilder und da sind die Codecs fest vorgegeben. Also nicht erweiterbar. zB kannst Du per GDI+ keine HEIC/HEIF Bilder laden. Wenn dann würde ich auf die Windows …

  • Benutzer-Avatarbild

    Zitat von Dideldum: „Zu dem WIC muss ich noch recherchieren“ Vllt. mal nur so im Hinterkopf behalten falls Du das mal irgendwann benötigst. Auf meinem PC (Win10) kann WIC folgende Bildformate lesen: BMP Decoder: *.bmp;*.dib;*.rle GIF Decoder: *.gif ICO Decoder: *.ico;*.icon CUR Decoder: *.cur JPEG Decoder: *.jpeg;*.jpe;*.jpg;*.jfif;*.exif PNG Decoder: *.png TIFF Decoder: *.tiff;*.tif DNG Decoder: *.dng WMPhoto Decoder: *.wdp;*.jxr DDS Decoder: *.dds Microsoft HEIF Decoder: *.heic;*.heif;*.hif;*.…

  • Benutzer-Avatarbild

    Zitat von Dideldum: „Ich finde im Web keine Infos, wie ich die Schaltfläche im IPreview,.... “ Gute Frage. Du könntest das mal im Explorer in der Preview testen ob das dort funktioniert. Wenn es dort auch nicht funktioniert, dann geht das mit dem Code auch nicht. Das Heic/Heif Format ist dem Jpeg Format sehr ähnlich. Ist also auch ein verlustbehaftetes Verfahren. Die Bildqualität ist aber besser als bei Jpeg und die Dateigröße dabei viel kleiner.

  • Benutzer-Avatarbild

    Zitat von Dideldum: „Wofür braucht man denn soviel weitere Formate?“ Die ganzen RAW Formate kommen hauptsächlich bei Digitalkameras vor (CR2/3 sind zB von Canon) wo das aufgenommene Bild später noch bearbeitet werden soll und von vornherein keine Verfälschungen, zB durch Komprimierung wie bei Jpeg, der Bilddaten geben soll. In RAW Formaten sind auch viel mehr Informationen gespeichert als nur die reinen Pixel des Bildes und sind daher auch sehr groß. Da jeder Hersteller sein eigenes Süppchen bei…

  • Benutzer-Avatarbild

    Hi. Du könntest versuchen ob Du per Marshal.QueryInterface vom IPreviewHandler ein Interface IOleWindow erstellen kannst. Das müsste man mal probieren. Wenn das geht, dann könntest Du per IOleWindow.GetWindow ein FensterHandle -> hWnd erhalten und man könnte das Fenster subclassen und auf entsprechende Messages reagieren. Das eigentliche Problem ist, in der MS-Doku ist nicht immer beschrieben welche Interfaces man noch per QueryInterface von einem Interface erstellen kann. Da hilft nur ausprobie…