www.mikrocontroller.net

Forum: PC-Programmierung Externes Programm/Datei aus MFC aufrufen


Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man eine Datei aus einem MFC Programm heraus aufrufen ? Konkret 
geht es um eine PDF Datei die ich öffnen möchte, sobald man auf einen 
Button/Link klickt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns C-standardkonform sein soll, dann benutzt
du die Funktion system()
Da du mit der MFC sowieso an Windows gebunden bist, kannst
du auch WinExec() oder ShellExecute() benutzen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Eine Möglichkeit wäre es, die Shell den Dokumentenhandler bestimmen 
zu lassen und den kompletten Pfad des Dokuments (hier: Deine PDF-Datei) 
an die Win32-API-Funktion ShellExecute zu übergeben.

Alternativ könntest Du auch mit der Win32-API-Funktion FindExecutable 
selbst bestimmen, welches Programm für die Datei zustädnig ist und das 
dann mit der Win32-API-Funktion CreateProcess und dem Dateinamen/Pfad 
als Parameter aufrufen, der Unterschied zur ersten Variante ist aber 
recht klein.

Ansonsten lässt sich prinzipiell der Adobe Reader auch als 
ActiveX-Control in Dein Programm einbetten, aber das funktioniert eher 
schlecht als recht; das PDF-Control ist ziemlich grützig.


Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, es funktioniert !
Ist es OK, wenn ich als HWND einfach NULL angebe ?

ShellExecute(NULL, "open","help.pdf",NULL, NULL, SW_NORMAL);

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut Dokumentation ist

hwnd
  [in] Handle to a parent window. This window receives
  any message boxes that an application produces,
  such as error reporting.

Gibst Du dafür NULL an, kann es passieren, daß die angedeuteten 
Messageboxen ohne Bezug auf Dein Applikationsfenster dargestellt werden. 
Kein staatstragendes Problem, würde ich sagen.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal das TeXnicCenter (Latex Editor für Windows) an.
Die haben den Scroreader über DDE eingebunden. Glaub die sourcen für
das Teil sind GPL. Das dürfte eine weitere Lösung sein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.