Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PDF-Datei mit fremdem Programm starten (https://www.delphipraxis.net/216530-pdf-datei-mit-fremdem-programm-starten.html)

Delbor 13. Jan 2025 16:57

PDF-Datei mit fremdem Programm starten
 
Hi zusammen

Mein Programm soll mir beliebige PDF-Dokumente mit fremdem Progamm anzeigen - auch zur weiteren Bearbeitung. Ich habe hier sehr viele Beispiele gefunden, wie sich fremde Programme innerhalb der eigenen Anwendung starten und anzeigen lassen, aber keines, mit dem ich auch gleichzeitig Dokumente (PDF) anzeigen und mit meinem Programm weiter bearbeiten kann.
Die angezeigten Dokumente sollen teilweise kopiert und von meinem Programm gespeichert, bzw. in eine DB geschrieben werden, was nach meinem Wissen nicht möglich ist, solange das Dokument vom Fremdprogramm geöffnet ist.

Oder auch etwas anders formuliert: kann ich mit dem fremden Programm gleichzeitig auch ein passendes Dokument starten, auch wenn die passende Anwendung keine Windows-Standardanwendung ist?

Gruss
Delbor

Cronen 13. Jan 2025 17:17

AW: PDF-Datei mit fremdem Programm starten
 
Dies sollte ganz einfach mit ShellExecute funktionieren:

Delphi-Quellcode:
uses
   ..., Winapi.ShellAPI,..

...

ShellExecute(Application.Handle,PChar('explore'),PChar('D:/Beispielordner/Beispiel.pdf'),nil,nil,SW_SHOWNORMAL);
Vorraussetzung ist, das PDF als Dokumentart registriert ist. Das ist aber praktisch immer der Fall, wenn ein PDF-Viewer (z.B. Acrobat Reader) installiert ist.

Redeemer 13. Jan 2025 17:27

AW: PDF-Datei mit fremdem Programm starten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Delbor (Beitrag 1545128)
Die angezeigten Dokumente sollen teilweise kopiert und von meinem Programm gespeichert, bzw. in eine DB geschrieben werden, was nach meinem Wissen nicht möglich ist, solange das Dokument vom Fremdprogramm geöffnet ist.

Das ist falsch. Lesezugriff solltest du praktisch immer haben.

Das Warten auf das Programmende ist bei diversen Programmen nicht möglich, die einen Instanzlimiter bzw. DDE benutzen. Ich verwende daher ein Fenster, bei dem der Nutzer selbst anklicken muss, wenn er fertig ist, wenn das aufgerufene Programm zu schnell beendet wird.

Dennis07 15. Jan 2025 17:49

AW: PDF-Datei mit fremdem Programm starten
 
Zitat:

Zitat von Cronen (Beitrag 1545129)
Delphi-Quellcode:
ShellExecute(Application.Handle,PChar('explore'),PChar('D:/Beispielordner/Beispiel.pdf'),nil,nil,SW_SHOWNORMAL);

Das gecaste mit dem PChar kannst du dir ja sparen. String-Konstanten werden implizit typisiert und können wahlweise für Werte von kurzen/langen Ansi-Strings, Unicode-Strings, dynamischen/offenen Char-Arrays, statischen 0-basierten Char-Arrays oder C-Strings (PChar) verwendet werden.

Siehe String-Typen_(Delphi)#Zeiger, Arrays und String-Konstanten


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz