Не найти обработчик пункта меню.

Тема в разделе "WASM.BEGINNERS", создана пользователем neutronion, 12 июл 2010.

  1. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Привет, форумчане! В программе без сырцов, нужно найти обработчик пункта меню. Можете подсказать, есть ли по данному вопросу литература, или мануалы какие-нибудь, кроме Петзольда?
     
  2. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    да и еще, программа похоже хитрая, все виндовс процедуры проанализировал, обработчика не нашел, искал только WM_LBUTTONDOWN и WM_LBUTTONUP, возможно не те мессаджи анализировал? Есть обработка LBUTTONUP, но в программе заканчивается на функции DefWindowProc.
     
  3. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    1) Петзольд как помнится учит писать, а не искать в бинарниках без сырцов...
    2) да ешкин же кот, причем тут WM_LBUTTON, если сам говоришь про меню??? обрабатывается WM_COMMAND, и младшее слово wparam. Меню - это вещь в себе, оно клик на мышь само обрабатывает, в программу посылает только ID выбранного элемента меню.

    ...может все-таки сначала Петзольда, чтоб логику поиска нужного места понять?
     
  4. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    neutronion
    возможно да, возможно надо анализировать WM_COMMAND в оконной функции (в олли надо ставить conditional breakpoint)
    адрес оконной функции можно узнать например утилитой WinSpy++
     
  5. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Ладно, короче так: я логгирую все мессаги, которые приходят в winproc.
    Я точно знаю, что в результате выбора пункта меню, обработчиком вызывается
    CreateFileA, соответственно ставлю точку останова на этой функции. Но с момента нажатия меню и останова на CreateFileA мессаг пришло слишком много. Вопрос, как выявить нужную мессагу в логе, которая инициировала обработчик?
    Имея эту информацию, нетрудно будет выявить обработчик меню.

    Кстати говоря, все менюшки и окошки custom. Разработчик создал на базе виндовских, свои окошки и свои менюшки.
     
  6. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    кажется въехал, что происходит. Обработка действительно происходит на WM_COMMAND, однако обработчки посылает еще туеву хучу всяких мессаг, чтобы
    замести следы, в результате таких манипуляций, при трассировке мы вновь оказываемся на начале winproc. Протрассировал вручную, все же дошел до CreateFileA. Теперь нужно сделать трейс видимо.