Перетащите с помощью SendMessage

Звучит забавно... Просто небольшой эксперимент.
Я хотел смоделировать перетаскивание файла в приложении/окне с помощью функции "Отправить сообщение". Является ли это возможным?

У меня нет кода для приложения, но для исполняемого файла.

Приложение называется IP Messenger.

Что я хотел сделать, так это использовать функцию «Отправить», чтобы отправить файл в .exe, который
найдет окно IPMessenger и имитирует код перетаскивания.

Пользователь выберет файл и щелкнет правой кнопкой мыши «отправить» в .exe, который перетащит его из кода.

**Примечание. IP Messenger поддерживает операцию перетаскивания файлов.

спасибо
амид


person Amitd    schedule 15.01.2010    source источник


Ответы (1)


Существует WM_DROPFILES Сообщение. Я думаю, вы могли бы использовать CreateToolhelp32Snapshot для найдите окно, которое является IP Messenger, а затем создайте структуру DROPFILES для отправки с сообщением WM_DROPFILES.

Последняя ссылка будет на Codeproject с некоторой помощью по созданию структуры DROPFILES: Как реализовать Перетащите между вашей программой и проводником.


Вместо CreatToolhelp32Snapshot можно использовать FindWindow функция. Здесь вы получите HWND для IP Messenger напрямую, вместо CTh32S, который найдет только HANDLE для процесса.

Когда это будет сделано, вы создадите структуру DROPFILES. Прочтите комментарии к ссылке CodeProject в разделе "Инициирование перетаскивания", чтобы узнать, как это сделать.

И, наконец, вы отправляете его с помощью sendmessage

SendMessage(ipMessHWND, WM_DROPFILES, (HDROP)&myDropFiles, 0);
person Default    schedule 15.03.2010
comment
примерно то, что я искал. выглядит довольно сложно. Спасибо :) - person Amitd; 17.03.2010