Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ausführen einer Datei bemerken. (https://www.delphipraxis.net/84426-ausfuehren-einer-datei-bemerken.html)

Telefonkabel 16. Jan 2007 19:42


Ausführen einer Datei bemerken.
 
Hy!
Ich hab mal wieder ein kleines Problem.
Diesmal handelt es sich darum, dass wenn eine Datei von einem ausgewählten Typ vom Nutze geöffnet wird, das Programm vorher noch etwas tun soll.
Z.B. (nur zur Verdeutlichung) Der Benutzer öffnet eine *.doc-Datei --> Programm öffnet eine Messagebox mit dem Inhalt "Schönes Word-Dokument".


Kann mir jemand helfen?

MfG
Telekab

Zacherl 16. Jan 2007 19:58

Re: Ausführen einer Datei bemerken.
 
Über API Hooks geht das eventuell.

sirius 16. Jan 2007 20:13

Re: Ausführen einer Datei bemerken.
 
Zitat:

Zitat von Florian Bernd
Über API Hooks geht das eventuell.

Damit geht es ganz sicher. Mit einem globalen WH_CBT hook kann man hervorragend lauschen, wann Fenster "created", "destroyed", "activated", .. werden.

MrKnogge 16. Jan 2007 20:17

Re: Ausführen einer Datei bemerken.
 
Zitat:

Zitat von sirius
... wann Fenster "created", "destroyed", "activated", .. werden.

Dann ist aber schon zu spät...

Luckie 16. Jan 2007 22:19

Re: Ausführen einer Datei bemerken.
 
Klingt für mich nach einem Dateisystemfiltertreiber. Der bekommt dann zu erst die benachrichtigung, dass die Datei geöffnet werden soll und reicht dann die Benachrichtigung weiter. Da es sich um einen Treiber handelt, wirst du wohl auf eine Entwicklungsumgebung von Microsoft zurückgreifen müsen und das DDK.

Telefonkabel 17. Jan 2007 06:43

Re: Ausführen einer Datei bemerken.
 
Danke schonmal, aber was ist ein API Hook?
Und wie kann ich einen Dateisystemfilter machen?

GIbts da Tutorials?

MfG
Telekab.

Luckie 17. Jan 2007 12:27

Re: Ausführen einer Datei bemerken.
 
Mit einem API-Hook kommst du nicht in den Kernel Mode rein. Hilft dir also nichts. Das DDK enthält alles, was du brauchst: Kompiler, Header-Dateien und Beispiele. Du solltest aber C fliessend können und wissen, wie Windows im Kernel Modus funktioniert, sonst sind die Chancen für dich gleich null. Einen Treiber schreibt man nicht mal eben so.

Telefonkabel 17. Jan 2007 14:33

Re: Ausführen einer Datei bemerken.
 
OK, ich wollte es wenn dann schon mit Delphi machen.
Also entfällt die Geschichte mit dem DDK.

Aber mir ist jetzt etwas eingefallen. Ihr habt doch erwähnt, dass es möglich ist über einen API Hook (Was ist ein Hook?) zu erfahren, dass eine Datei geöffnet wird, dann sollte es doch kein Problem sein, sich den Pfad zu dieser Datei zu merken, sie zu schließen und das Programm die Message ausgeben zu lassen und erst dann die Datei über den Pfad wieder zu öffnen, oder?


MfG
Telekab.

Zacherl 17. Jan 2007 14:37

Re: Ausführen einer Datei bemerken.
 
Zumindets bei EXE Dateien könnte man CreateProcess hooken.

shmia 17. Jan 2007 14:41

Re: Ausführen einer Datei bemerken.
 
Du könntest natürlich die Verknüpfung zwischen *.DOC und WinWord.exe in der Registry ändern
und auf deine eigene Anwendung (WinWordErsatz.exe) richten.
WinWordErsatz zeigt die Meldung, startet WinWord.exe und beendet sich selbst.
Nicht sehr elegant, aber eine machbare Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 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