Thema: Delphi Kontexmenü Problem

Einzelnen Beitrag anzeigen

bigg
(Gast)

n/a Beiträge
 
#12

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 14:50
hi,

Zitat:
Wie übergibt Explorer.exe die Dateinamen an die dll?
Dies geschieht über DragQueryFile(). Aber du mußt dir das so vorstellen, das deine DLL
ein Unterprogramm von "Explorer.exe" ist. Die DLL laüft immer, wenn auch Explorer.exe läuft.
Schau dir dazu das von Sprint angesprochene Beispiel an.
(Delphi\Demos\ActiveX\ShellExt\contmenu.dpr)

Zitat:
Und wie bekomme ich die Dateipfade aus der dll in mein Programm, wenn ich das Programm durch die dll aufgerufen habe?
-> Die DLL wird ja vom Explorer aufgerufen
-> der Explorer übergibt die Pfade an die DLL, sobald du die rechte Maustaste gedrückt hast
-> Deine DLL kann dann eine Dateiliste erstellen
-> Jetzt gibt es mehrere Möglichkeiten die Liste an dein Programm zu übergeben
-> 1.) Du übergibst die Speicher-Adresse der Liste und sendest sie an dein Programm
2.) oder du sendest die Liste über WM_CopyData an dein Programm (Messages, SendMessage)

PS: Die DLL startet dann dein Programm und übergibt dann die Liste.
Das Starten des Hauptprogrammes kostet Zeit, daher mußt du solange prüfen bis es gestartet ist.
Den Pfad zur Exe kann man in der Registry abspeichern.
  Mit Zitat antworten Zitat