AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Adobe Reader (wieder einmal)

Ein Thema von hesch21 · begonnen am 15. Jul 2014 · letzter Beitrag vom 16. Jul 2014
Antwort Antwort
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#1

Adobe Reader (wieder einmal)

  Alt 15. Jul 2014, 15:17
Hallo
ich weiss, ein leidiges Thema. Ich habe inzwischen bereits mehrere Applikationen geschrieben, die PDFs erstellen und den Adobe-Reader öffnen (ShellExecute). Aber nun sollte ich mal was ganz anderes machen. Ich sollte von einem geöffneten Adobe-Reader das PDF 'abfangen', den Adobe-Reader schliessen (von mir aus auch abschiessen) und dann das PDF weiter verarbeiten (in einzelne BMP umwandeln, umsortieren, etc.).
Nun hänge ich aber an einem dämlichen Problem: Wie komme ich an den Pfad der PDF-Datei, welche der Adobe-Reader offen hat? Und unter Umständen können das ja mehrere sein. Ich kann mir zwar über EnumProc den Fenstertitel mit dem Dateinamen heraussuchen (so wie er im Taskmanager bei Applikationen angezeigt wird), nur hilft das nicht so viel.
Ein rekursiver Suchlauf über die gesamte Netzwerkumgebung und eigene Festplatte ist nicht das Wahre und mit ActiveX auf Adobe-Reader zugreifen sollte man ja bekanntlich nicht.
Hat da jemand eine Idee?
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Adobe Reader (wieder einmal)

  Alt 15. Jul 2014, 15:22
Sinnvollerweise entwickelst du gegen die API des Acrobat: http://www.adobe.com/devnet/acrobat/...hitecture.html
Beim Reader kann das aber sehr teuer werden!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Adobe Reader (wieder einmal)

  Alt 16. Jul 2014, 08:22
Hallo Bernhard
ja, schon. Ich habe auch mal kurz überlegt, ob das Sinn machen würde, finde aber, das sei mit Kanonen auf Spatzen geschossen. Ich will ja vom Adobe Reader nur eines: Den oder die Namen inkl. Pfad der gerade geöffneten PDFs. Die Namen selbst liefert er mir ja schon 'freiwillig'. Das müsste doch auch auf eine andere Art machbar sein als auf eine langwierige und stinketeure (und vermutlich nicht mal wirklich Delphi-kompatible) Weise über ein Adobe-SDK.
Heinz Schneider
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Adobe Reader (wieder einmal)

  Alt 16. Jul 2014, 08:47
Ich weiß auch nicht genau wie, aber vielleicht hilft dir das ein bisschen weiter:

Mit dem Process Monitor von SysInternals kann man sich ja bekanntlich alle Operationen eines Prozesses anzeigen lassen.

Auch die geöffneten Dateien.

Du müsstest nur raus finden, wie das funktioniert und für deinen Spezialfall anpassen.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: Adobe Reader (wieder einmal)

  Alt 16. Jul 2014, 09:59
Hallo TiGü
vermutlich grüble ich in diese Richtung und habe auch eine Lösung gefunden, die mich aber nicht nur in Sachen Geschwindigkeit nicht befriedigt. Wenn ich über CMD ein openfiles > (irgend ein Textfile) absetze, erhalte ich nach etwa 13 Sekunden eine schöne Liste aller offenen Dateien. Da kann ich dann nach dem Adobe-Reader und den PDF-Dateien suchen. Aber auch unschön ist, dass der openfiles erst funktioniert, wenn man mal einen 'openfiles /local on' mit Administrator-Rechten abgesetzt und den Rechner neu gestartet hat.
Heinz Schneider
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Adobe Reader (wieder einmal)

  Alt 16. Jul 2014, 11:02
Das Auflisten offener Dateien mit eigenem Programm (ohne Shellcommand) scheint nicht gerade unaufwendig zu sein.
Siehe dazu mal hier bei CodeProject http://www.codeproject.com/KB/shell/...select=2277170
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: Adobe Reader (wieder einmal)

  Alt 16. Jul 2014, 15:50
Neuer Zwischenstand: Der Tipp Process Monitor von TiGü war wirklich gut, nur ist es nicht Process Monitor von SysInternals, sondern 'Handle'. Wenn ich 'handle -p acrord > c:\temp\test.txt' absetze, liefert mir das Ding ultraschnell eine Datei mit allen offenen Files vom Acrobat Reader, die ich nur noch nach den PDFs durchsuchen muss. Einziger Schönheitsfehler: 'Handle' braucht Administratoren-Rechte.
Heinz Schneider
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#8

AW: Adobe Reader (wieder einmal)

  Alt 16. Jul 2014, 15:52
hmmm und der andere Weg, ein Programm schreiben das beim öffnen einer PDF gestartet wird und dann den Adobe Reader Startet? Sozusagen nen Loader?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz