2010-01-15 21 views
6

Das klingt witzig..nur ein kleines Experiment.
Ich wollte einen Drag-Drop einer Datei auf einer Anwendung/Fenster mit Send Message simulieren. Ist es möglich?Drag Drop mit SendMessage

Ich habe keinen Code für die Anwendung, sondern auf die ausführbare Datei.

Die Anwendung ist IP Messenger.

Was ich tun wollte, ist "Senden an" -Funktionalität, um die Datei an eine .exe, die
IPMessenger Fenster finden und simulieren einen Drag-Drop-Throw-Code senden.

Der Benutzer wird die Datei auswählen und mit der rechten Maustaste auf "Senden an" an die .exe klicken, die Drag-Drop aus dem Code ziehen wird.

** Hinweis: IP-Messenger unterstützt Drag & Drop-Vorgang für Dateien

thx
amit

+0

Hallo Amitd Ich habe genau das gleiche Problem Sie die Antwort noch finden Sie? – AliPST

+0

nichts viel .. noch forschen .. wird aktualisiert, wenn etwas :) – Amitd

+0

Hat die folgende Lösung funktioniert? – Default

Antwort

3

Dort wird die WM_DROPFILES Message ist. Ich nehme an, dass Sie CreateToolhelp32Snapshot verwenden konnten, um das Fenster zu finden, das IP Messenger ist, und dann die DROPFILES Struktur zu erstellen, um mit der WM_DROPFILES Nachricht zu senden.

Der letzte Link wäre Codeproject, mit etwas Hilfe bei der Erstellung der DROPFILES Struktur: How to Implement Drag and Drop Between Your Program and Explorer.


Statt CreatToolhelp32Snapshot verwenden Sie FindWindow Funktion verwenden können. Hier erhalten Sie die HWND für IP Messenger direkt anstelle von CTh32S, die nur die HANDLE für den Prozess finden.

Wenn dies erledigt ist, erstellen Sie die DROPFILES Struktur. Lesen Sie die Kommentare zum CodeProject-Link in der "Initiieren eines Drag & Drop" Abschnitt für weitere Informationen wie.

Und schließlich Sie es mit Sendmessage senden

SendMessage(ipMessHWND, WM_DROPFILES, (HDROP)&myDropFiles, 0); 
+0

nur über das, was ich suchte. Sieht ziemlich komplex aus. Thx :) – Amitd

+0

Ich habe etwas mehr hinzugefügt, um es hoffentlich klarer zu machen – Default