![]() |
Fremdes Programm ansteuern
Ich will den Text aus einer PDF haben, um z.B. Telefonnummern zu suchen.
Einfach einlesen wie bei TXT geht nicht, da bei PDF der Text Binärcodiert ist. Da die PDF verschieden aussehen, sind sie nicht immer an der selben Stelle, also nicht auslesbar. Einfachster Weg den ich gefunden habe: Den gesamten Text markiern, dann kopieren und dann in TMemo reinkopieren, dann kann man da nach allem suchen. Alles markieren wäre strg+a,kopieren strg+c und einfügen ins Memo da werd ich wohl den zwischenspeicher auslesen. Als Möglichkeit zum ansteuern des Adobe Reader bin ich auf Sendmessage gekommen. var zahl:integer; hndl : THANDLE SendMessage(hndl, WM_COMMAND, zahl, 0); Auf windowsseite find ich aber keine Info wie man ein strg+A und so auslöst oder welche zahl das sein soll, die arbeiten mit wörtern. |
AW: Fremdes Programm ansteuern
So sendet man ein CRTL+A
Delphi-Quellcode:
So ein CRTL + C
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord('A'), 0, 0, 0); keybd_event(Ord('A'), 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
Delphi-Quellcode:
So stellt man sicher, dass der User nicht irgendwelche anderen Control Keys drückt ...
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord('C'), 0, 0, 0); keybd_event(Ord('C'), 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); ![]() |
AW: Fremdes Programm ansteuern
Funktioniert super
der Ordnung halber: Im interface unter uses braucht man windows, winsock, sonst funktioniert es nicht, es steht bei den meisten erklärungen nur 'windows' dabei |
AW: Fremdes Programm ansteuern
Zitat:
Winsock brauchst du für Socket Kommunikation, aber ganz sicher nicht für ein einfaches "CTRL+A". Die unit "Clipbrd" könnte sicher interessant sein, damit man den Text aus der Zwischenablage auch wieder zum Weiterverarbeiten herausbekommt ... |
AW: Fremdes Programm ansteuern
Mach das lieber über eine temporäre Datei als über die Zwischenablage. Oder wenn über die Zwischenablage, dann weis den Anwender drauf hin. Ich verwende die Zwischenablage sehr intensiv und wenn sie mir ein Programm ungefragt überschreibt, sollte der Programmierer möglichst nicht mit mir in einem Raum befinden.
|
AW: Fremdes Programm ansteuern
Zitat:
Zitat:
|
AW: Fremdes Programm ansteuern
|
AW: Fremdes Programm ansteuern
Zitat:
leider hatte ich auch schon gefunden |
AW: Fremdes Programm ansteuern
Diese muss man auch selber erzeugen (Wrapper Unit um ActiveX-Control)
|
AW: Fremdes Programm ansteuern
wäre ne bessere Lösung mit activex, hab dazu nur eine erklärung für word dateien gefunden
soweit ich es verstanden hab schließt man die application ins Ole object. wie heißt denn die acrobat application, also was muss in createOleobject()? ist niergnds beschrieben wo die das her haben > MSWord: Variant; > begin > MSWord := CreateOleObject('Word.Application'); hier mal die Quelle: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 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