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.
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.
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.
Danke, es funktioniert ! Ist es OK, wenn ich als HWND einfach NULL angebe ? ShellExecute(NULL, "open","help.pdf",NULL, NULL, SW_NORMAL);
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.