Перетащите файлы между окнами проводника на Windows 7

Это своего рода сложный запрос, как он выглядит снаружи. Я хотел бы получать уведомления о любой операции перетаскивания, выполняемой в проводнике Windows, с точным количеством файлов, перетаскиваемых из исходной в целевую папку.

Я пытался установить setwindowshookex в своем приложении, но события перетаскивания не отображаются в функции обратного вызова, хотя я получаю изменения размера, forgroundwindows, выбор элементов и т. Д. События.

НЕ уверен, что не так, может показаться невозможным перехватывать события перетаскивания в окнах.

У кого-нибудь может помочь с этим.

Спасибо Ал

1 ответ

Операции перетаскивания внутри Проводника Windows не используют оконные сообщения, они используют IDropSource а также IDropTarget COM-интерфейсы через DoDragDrop() функция. Вы не можете подключить это с SetWindowsHookEx(), Скорее всего, вам понадобится записать некоторый код в DLL и вставить его непосредственно в Windows Explorer, чтобы он потом мог перехватить DoDragDrop() напрямую, например, с помощью объезда, поэтому при любом вызове он сначала будет проходить через ваш код хука. Таким образом, вы можете получить доступ к COM-интерфейсам, которые ему передаются, а также определить, было ли перетаскивание успешно или отменено.

Другие вопросы по тегам