Выбор пунктов меню без посылки ими сообщ WM_COMMAND..

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Выбор пунктов меню без посылки ими сообщ WM_COMMAND..

char_ser » 24 ноя 2004, 16:53

Зато стал думать более гибко и теперь не доверяю мелкомягким "штучкам" :) Симулянты...

Eugie » 24 ноя 2004, 13:06

Гы, так все труды были напрасны? :)

char_ser » 23 ноя 2004, 11:25

Есть меню сверху, ты водишь по нему мышкой и появляются выпадающие меню.
Так вот прикол в том, что вместо парочку выпадающих программа эмулирует при помощи контекстного меню :) ))))

Romeo » 22 ноя 2004, 21:30

Надо было с самого начала говорить, что меню контекстное! Сэкономил бы несколько дней рыскания в MSDN. Вот что значит не полная постановка вопроса :)

char_ser » 22 ноя 2004, 18:45

А вот и нет! Разобрался. Контекстные меню вызываются TrackPopupMenu(). TrackPopupMenu() во время своего выполнения не посылает сообщений WM_COMMAND окну и возвращает ID выбранного элемента меню (MSDN).

Eugie » 15 ноя 2004, 12:30

Не знаю, как это реализовано на самом деле, но напрашивается вариант с хуками. Т.е. MMC сама ставит фильтр на WM_COMMAND для некоторых команд меню, чтобы потенциальный злоумышленник не сделал то же самое раньше :)

char_ser » 11 ноя 2004, 15:55

Под консолью имелась ввиду MMC (Microsoft Management Console), когда хочешь поменять у пользователя пароль..

char_ser » 11 ноя 2004, 15:53

Не происходит посылки сообщения WM_COMMAND при выборе пункта SetPassword... в консоли ни через всплывающее меню, ни из главного меню сверху.

Подробнее: При выборе какого-нибудь элемента меню (например, "Help\About Local Users and Groups") происходят следующие действия:
1) Водим мышью, выбирая тот или иной пункт меню - посылается сообщение WM_MENUSELECT
2) Нажимаем левой кнопкой мыши на выбранном пункте меню и посылаются следующие сообщения:
WM_UNINITMENUPOPUP
WM_MENUSELECT (menu was closed)
WM_EXITMENULOOP flsTrackPopupMenu:TRUE
WM_COMMAND wNotifyCode:0 (sent from menu) wID:13242 (item menu ID)

При выборе SetPassword происходят другие действия:
1) Водим мышью, выбирая тот или иной пункт меню - посылается сообщение WM_MENUSELECT
Никаких сообщений при выборе пункта меню нет!!!

Выбор пунктов меню без посылки ими сообщ WM_COMMAND..

char_ser » 11 ноя 2004, 14:24

Стал прослушивать меню одной программы из Винды при помощи SPY++ и увидел, что некоторые элементы меню при их выборе и нажатии на них посылают окну сообщение WM_COMMAND. А некоторые - нет.

Как вторые выкручиваются?
В моем случае это точно не Registered, Unknown и WM_USER сообщения.
Может вообще без сообщений как-то?

Вернуться к началу