2010-01-15 39 views
6

Esto suena gracioso ... solo un pequeño experimento.
quería simular una gota de arrastre de un archivo en una Aplicación/Ventana usando Enviar mensaje. ¿Es posible?Arrastrar y soltar usando SendMessage

No tengo el código para la aplicación, pero en el ejecutable.

La aplicación es IP Messenger.

lo que quería hacer es utilizar "Enviar a" funcionalidad para enviar el archivo a un archivo .exe, que se encuentra
ventana IPMessenger y simular un lastre caer thr código.

El usuario seleccionará el archivo y hará clic derecho en "enviar a" al archivo .exe, que arrastrará el código.

** Nota: Messenger IP soporta la operación de arrastrar y soltar archivos para

THX
Amit

+0

Hola Amitd Tengo exactamente el mismo problema ¿Se encuentra la respuesta todavía? – AliPST

+0

nada mucho .. aún investigando ... se actualizará si algo :) – Amitd

+0

¿Funcionó la siguiente solución? – Default

Respuesta

3

Existe la WM_DROPFILES Message. Supongo que podría usar CreateToolhelp32Snapshot para localizar la ventana que es IP Messenger y luego construir la estructura DROPFILES para enviar con el mensaje WM_DROPFILES.

El enlace final sería a Codeproject, con algo de ayuda para crear la estructura DROPFILES: How to Implement Drag and Drop Between Your Program and Explorer.


En lugar de utilizar CreatToolhelp32Snapshot podría usar FindWindow función. Aquí obtendrá el HWND para IP Messenger directamente, en lugar de CTh32S, que solo localizará el HANDLE para el proceso.

Cuando esto se hace, crea la estructura DROPFILES. Lea los comentarios en el enlace CodeProject en la sección "Inicio de una operación de arrastrar y soltar" para obtener más información sobre cómo.

Y por último lo envía con sendmessage

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

casi lo que estaba buscando. Parece bastante complejo. Thx :) – Amitd

+0

Agregué algunos más para, con suerte, hacerlo más claro – Default