Entwickler-Ecke

Windows API - Shell Programmierung: Copy Hook, Drag&Drop Hook


wolke - Mo 22.08.05 13:15
Titel: Shell Programmierung: Copy Hook, Drag&Drop Hook
hallo, ich bin auch mal wieder da.

ich habe 2 fragen zur shell-programmierung, die aber so eng miteinander verwoben sind daß ich sie wohl guten gewissens in einem thread stellen kann.

und zwar möchte ich meine anwendung in das "drag&drop-kopier-menü" von windows integrieren. ich meine das menü das erscheint, wenn man eine datei mit gedrückter RECHTER maustaste verschiebt ("hierher kopieren", "verknüpfung erstellen"). also eigentlich genau das, was hier gezeigt wird: http://www.shellplus.com/examples/dragdrop-handler-example.html

als zweites möchte ich gerne einen - so wird es bei shell+ genannt - copyhook installieren. meine anwendung soll benachrichtigt werden wenn der nutzer eine datei verschieben/kopieren will, und zwar vor der eigentlichen aktion. wird hier gezeigt: http://www.shellplus.com/examples/copyhook-handler-example.html

shell+ ist leider nicht umsonst, ich finde nichts verwendbares über google und hier in der bib findet man auch keine bücher zur shellprogrammierung.

habt ihr einen guten tipp?


rochus - Mo 22.08.05 13:21

Auf deine 2. Frage hab ich auf die schnelle ein "Antwort", auf die erste nicht:

Suche im MSDN ICOPYHOOK


rochus - Mo 22.08.05 13:30

Vielleicht findest du auf deine erste Frage was bei:

Suche im MSDN ICONTEXTMENU
Suche im MSDN ICONTEXTMENU2
Suche im MSDN ICONTEXTMENU3
Suche im MSDN ICONTEXTMENUCALLBACK
Suche im MSDN ICONTEXTMENUCALLBACK2
Suche im MSDN ICONTEXTMENUPROVIDER
Suche im MSDN ICONTEXTMENUPROVIDER2

Hab nur gesehen, dass es die gibt und normal fügt man über das IContextMenu seinen Menüpunkt dazu. vielleicht gibt's da dann irgenwelche flags, mit denen du einstellen kannst, dass das nach dem draggen angezeigt werden soll.


rochus - Mo 22.08.05 13:33

Wer suchet, der findet: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/contextmenuhandlers.asp

Viel Spaß!

nächstes mal: Selber suchen *g*


wolke - Mo 22.08.05 14:52

danke für die schnellen antworten! ihr seid klasse :)

ich hätte mich vielleicht genauer ausdrücken müssen: ich kenn mich mit COM programmierung null aus, inzwischen habe ich auch das beispiel zu ICopyHook unter Demos\Activex\Shellext gefunden und die MSDN "gewälzt" und verstehe weniger als vorher ;)
wie kann ich denn diese demo-library (copyhook) in mein programm einbinden? gibt es irgendwo beispielcode? nicht daß ich mir alles erschnorren wollen würde, aber im moment steig ich da wirklich nicht durch...


wolke - Mo 22.08.05 16:23

stunden später fällt mir dann auch mal auf, daß ICopyHook nur für ordner, NICHT für dateien funktioniert. also nicht das, was ich suche.
ich möchte gerne die dateioperationen (kopieren/verschieben) durch eigenen code ersetzen, und zwar für dateien und ordner.

zu dragdrophandlers habe ich auch noch nichts verwendbares gefunden und steig da selber wenig durch.


wolke - Do 25.08.05 18:59

habe eine lösung gefunden - beispielsweise mit madcodehook kann man API-funktionen "umbiegen" auf eigene prozeduren.


retnyg - Do 25.08.05 19:19

wenn du ne shell coden willst ists vielleicht hilfreich wenn du dir den source von http://sharpe-shell.org ziehst (leider nur als cvs)