PDF Datei öffnen



  • Hallo! 🙂

    Wie kann man eine PDF Datei nach einem Button-Klick öffnen?
    Ich hab bis jetzt shellexecute() gefunden weiß aber net genau wie das geht. Kann das wer sagen? 😮


  • Mod

    Dateiname einfach bei ShellExecute Angeben und Verb Open benutzen. That's it...



  • ShellExecute(handle, "open", "anleitung.pdf", NULL, NULL, SW_SHOWNORMAL);
    

    `

    1>Kompilieren...

    1>Router.cpp

    1>***(118) : error C2065: 'handle': nichtdeklarierter Bezeichner

    1>***(118) : error C2065: 'NULL': nichtdeklarierter Bezeichner

    1>***(118) : error C2065: 'NULL': nichtdeklarierter Bezeichner

    1>***(118) : error C2065: 'SW_SHOWNORMAL': nichtdeklarierter Bezeichner

    1>***(118) : error C3861: "ShellExecute": Bezeichner wurde nicht gefunden.

    1>Das Buildprotokoll wurde unter "file://***\Visual Studio 2008\Projects\Router\Debug\BuildLog.htm" gespeichert.

    1>Router - 5 Fehler, 0 Warnung(en)

    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    `



  • Bist du sicher dass du mit MFC arbeitest?
    Wenn ja, dann schau ob stdafx.h includiert wurde.
    Wenn nein, dann würde ich "Windows.h" und "shellapi.h" includiren.

    Les dir doch bitte einmal die Funktionsbeschreibung durch:
    http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx

    hwnd
    [in] A handle to the owner window used for displaying a UI or error messages. This value can be NULL if the operation is not associated with a window.

    Wenn du also keine Nachrichten vom Acrobatreader haben musst, kannst du auch NULL anstatt des Handles übergeben.

    Also:

    ShellExecute(NULL, _T("open"), _T("anleitung.pdf"), NULL, NULL, SW_SHOWNORMAL);
    

    Übrigens sollte es die Variable mit dem Handle schon geben.
    Einfach handle hinschreiben ohne die Variable zu deffinieren und dem Ganzen ein Fansterhandle zuzuweisesn gilt nicht.

    Außerdem würde ich mir angewöhnen bei Strings _T() zu verwenden.
    Denn damit ersparst du dir VIEL Arbeit wenn du einmal auf Unicode umsteigst


Anmelden zum Antworten