![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Вопрос такой, есть программа с панелькой, на панели на событии OnDrop (не помню точно, ну когда перетаскивают на неё что-то) висит обработчик. Я беру Spy++, цепляюсь к главному окну программы, перетаскиваю на панель файл, лог Spy++ оживляется, и среди других сообщений я замечаю WM_NOTIFY. WM_NOTIFY idCtrl: 313894 pnmh: 0018ECF4 Что-то типа того, в нескольких экземплярах. Ну idCtrl мне не нужен, а как посмотреть содержимое структуры, на которую указывает второй адрес? То есть, я хочу знать, что мне воткнуть в sendmessage, чтобы сделать "перетаскивание" без фактического перетаскивания. Да и не только Drug&Drop с этим сообщением связан.. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Гость |
![]()
Сообщение
#2
|
Гость ![]() |
А ты не через Spy, а прямо из своей программы смотри, что за сообщение приходит.
И смотри на PNMHDN(LP)^ |
Unconnected |
![]()
Сообщение
#3
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Дык, если бы она была моя
![]() -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
А по адресу тебя не пускают?
Кстати, по-моему, нотифи ничего не делает. Это просто сигнал, который приходит к главному окну. Попробуй в лоб, через сообщения сэмулировать нажатие мышки, перетаскивание, отжатие. |
Unconnected |
![]()
Сообщение
#5
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Цитата А по адресу тебя не пускают? А куда его вбить, чтобы посмотреть содержимое структуры? Ну, сэмулирую.. а что это даст? Да и сильно муторно это по-моему, как бы там с координатами не пришлось заморачиваться.. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Гость |
![]()
Сообщение
#6
|
Гость ![]() |
Хз, может в артамни какое-нибудь. Я ковырянием чужих прог отродясь не занимался.
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата То есть, я хочу знать, что мне воткнуть в sendmessage, чтобы сделать "перетаскивание" без фактического перетаскивания. Ты можешь без "наворотов" объяснить, чего надо-то? "Перетаскивание без фактического перетаскивания" - очень оригинально. Запуск без фактического запуска не надо? Или работу на компьютере без наличия компьютера фактически? |
Unconnected |
![]()
Сообщение
#8
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
ну, этта... Юзер перетаскивает текстовик в эту программку и что-то происходит, а я хочу нажимать кнопку, и чтобы то же самое происходило, без фактического перетаскивания, по факту отправки sendmessage с параметрами, которые я и хочу узнать..))
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Ну, эта... А что, у тебя Дельфи переклинило?
![]() |
Unconnected |
![]()
Сообщение
#10
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Да, и правда, что-то глуплю.. Ну тогда в SetWindowHookEx надо писать не HCBT_CREATEWND, а WM_NOTIFY, да?
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Не-не-не... Я сказал не о хуке, сабклассинг делается по-другому. Гугл в помощь. Кстати, с хуками - тоже идея. Только не пытайся поймать WM_NOTIFY, используя WH_GETMESSAGE. Работай через WH_CALLWNDPROC:
Цитата WH_CALLWNDPROC Тебе как раз для отладки.Windows вызывает этот хук при каждом вызове функции SendMessage. Фильтрующей функции передается код хука, показывающий, была ли произведена посылка сообщения из текущего потока, а также указатель на структуру с информацией о сообщении. <...> Этот хук использует значительное количество системных ресурсов, особенно, когда он установлен с системной областью видимости, поэтому используйте его только в целях отладки. |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 17:45 |