Добрый день всем. Собственно перерыл всю документацию, поднял архивы форума, но так конкретного вопроса не нашел на свой вопрос: как такое возможно, что установив бряк на Edit (на оконную процедуру данного контрола) не отлавливаются сообщения WM_GETTEXT и другие, которые отчетливо видны с помощью Spy++. То есть Spy++ видит сообщение WM_GETTEXT, а отладчики нет. Отладчики видят только WM_Paint и мышиные сообщения. Помогите ответить на этот сверх сложнейший вопрос . В аттаче та злополучная прога, у которой на которую пасуют дебагеры! ЗЫ То есть если в двух словах вопрос - как поймать WM_GETTEXT или это глюк всех существующих отладчиков (а может все дело в кривых руках)? Заранее спасибо за внимание.
не понял ... у тебя есть обработчик сообщения вм_геттекст , но ты так и неможешь поймать , когда он начинает отрабатывать ?
посмотри урок икзелиона по едиту - окно получает только часть сообщений, остальные - обрабатываются внутри ос. может попробовать субклассировать едит?
Veter если можно поподробнее что ты хотел сказать. Geen: Попробую объяснить ситуацию еще раз. Веду эксперементы над прогой из 9 туториала IceZelon. Там edit в Spy++ точно получает сообщение WM_GETTEXT, но когда ставлю бряк на оконную процедуру едита (находится в высших адресах памяти >7...) ловятся сообщения едиту только от мышки и от клавы, а WM_GETTEXT отладчики не ловят. Могу записать демку как и что я делал.
Оконная процедура стандартного системного едита получает не все сообщения - так решили ребята из мелкософта - им нужно было обеспечить многозадачность. Посмотри в оле урок Сабклассинг.Потом расскажешь ...
Veter а вот это для меня новость. Большое спасибо за ответ - наконецто первый форум на котором дали конкретный ответ. Тогда это все объясняет почему WM_GETTEXT не ловится никакими отладчиками в оконной процедуе. Пойду изучать сабклассиг, надеюсь разберусь.
Извини за возможно тупой вопрос - но не подскажеш где лучше почитать про то что ты говорил. В кратце я понял из урока IceZelion что такое сабклассинг: Тепеpь мы можем pассмотpеть то, каким обpазом пpоисходит сабклассинг окна. Заметьте, что сабклассинг неогpаничивается контpолами, он может использоваться с любым окном. Давайте подумае о том, как Windows узнает, где находится пpоцедуpа edit box'а. Hу?.. Поле lpfnWndProc в стpуктуpе WNDCLASSEX. Если мы сможем поменять значение этого поля на адpес собственной стpуктуpы, Windows пошлет сообщение нашей пpоцедуpе окна вместо этого. Мы можем сделать это, вызвав SetWindowLong. Но я исследу программу из 9 туториала IceZelion размером 4кб и там точно нет этого (адрес оконной процедуры не меняется). Так как же разобраться? Про то что стандартный контрол получает в свою оконну процедуру только часть сообщений нигде ни слова! А сабклассинг олучается это смена адреса оконной процедуры - чего у меня точно нет. И как же поставить этот бряк на WM_Gettext, который SPY++ отлично видит?
вот , может быть еще новость ... но очередь сообщений (стек мсг структур) не помню точно , но где то по адресам 7ххххххх находится ... сам не писал , но видел подобные проги. если конечно наличие структуры сообщения геттекскт к твоему процессу (окошку) в виде слива каких то данных с него тебе может что то дать.
Есть серия интересных статей - как-бы начинающий исследует уроки Икзелиона с помощью отладчика. Оказывается там не всё так просто.... А конкретно с текстом - вроде бы видел в какой-то статье , что никто точно не знает, где и когда появляется текст и какая структура этим занимается ...Но появляется он до WM_PAINT - в 5, кажется, уроке, что очень странно... Я помочь не могу, сори, с олей пока не умею работать - открою её потыкаю кнопки - ничо непонятно, глаза закрываюся и .....Пока моё подсознание категорически отказыватеся воспринимать всё это... дошло до того, что начал писать собственный отладчик - так проще и легче разобраться ...
Geen тебе тоже спасибо что пытаешся помочь, но твой ответ не сильно помогает ответить на мой вопрос. Veter если можеш дай ссылку на статьи про которые ты говорил или опиши в любом отладчике как это отловить - умею работать почти со всеми.
Как-то скачал Rootkin`a - 15 метров и 90% мусора там( мусором я считаю всё, что связано с "исследованием программ в исследовательских целях", т.е ,говоря юридическим языком, - взлом с использованием технических средств), эти статьи там были , и потом увидел их здесь на форуме. Сори - они где-то в архиве, щас не могу найти ....
Вот блин. Ну что ж этот невероятно сложный вопрос, часто задававшийся на крэклабе и тут так без ответа. Буду надеяться что все таки есть люди которые смогут объяснить в какую сторону надо мыслить. Вопрос остается открытым - с нетерпением жду ответов.