Drag'n'Drop

0

Witam,
Czy wie ktoś może w jaki sposób obsłużyć dnd z formy aplikacji, aby zostało "odebrane" (przyjęte) przez explorera? (tak jak np. przeciąganie plików z winrara na pulpit).

z góry thx :]

0

Jest z tym trochę zabawy !

Przeczytaj dokładnie co na ten temat pisze w MSDN-ie: http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/contextmenuhandlers.asp.

Zajrzyj też do pliku ContextM.pas (katalog z Delphi\Demos\ActiveX\ShellExt).

Poniżej masz link do fragmentu źródła mojego programu ShellCopy, który korzysta z DragDropHandler-a.
Składa się on z 2 części: DLL-a z ShellExtension i programu kopiującego (ShellCopy.exe).
Po wykonaniu operacji Drag&Drop, DLL dodaje 2 pozycje do menu kontekstowego Exploratora (z bitmapami): Kopiuj do... i Przenieś do... .
Po wybraniu którejś z tych pozycji, lista plików i/lub katalogów zaznaczonych w Exploratorze jest zapisywana w pliku tekstowym (w katalogu %TEMP%). Następnie z DLL-a uruchamiany jest ShellCopy z odpowiednimi parametrami (jednym z parametrów jest ścieżka do wcześniej zapisanego w %TEMP% pliku). ShellCopy odczytuje ten plik i robi co trzeba. Z tym, że implementacja kopiowania/przenoszenia została tutaj usunięta (copyright!), a tylko wypisywane są w Memo wszystkie parametry przekazane przez DLL-a oraz zawartość pliku tekstowego z %TEMP%.
Wymiana informacji między DLL-em, a ShellCopy odbywa się tutaj za pomocą pliku, ale można to zrobić wykorzystując komunikaty lub DDE.

Zobacz źródło: http://www.dhost.info/jack1024/misc/ShellCopy_src.html
Pobierz projekt: http://www.dhost.info/jack1024/misc/ShellCopy_Project.rar (przeczytaj Readme.txt !).

0

Wielkie dzięki :] Może coś z tego mi wyjdzie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1