У самого Висты нет, и потому обращаюсь к тем, у кого есть: просьба проверить и сообщить, читается ли И НА ВИСТЕ текст Edit-а со стилем ES_PASSWORD просто путем PostMessage (без всяких хуков) ? В аттаче - тестер (by_es_password.exe) и тестируемые Edit-ы с переключателем стиля ES_PASSWORD (es_password.exe), конечно - с исходниками. Т.е. надо запустить by_es_password.exe, es_password.exe, выставить Edit-у ES_PASSWORD, навести на него мышку и посмотреть, что показывает by_es_password. Спасибо. Что-то не аттачится, тогда - http://www.geocities.com/xmemor/2lz/by_es_password.zip --- Ничего не "редактировал", просто опять пытался приаттачить. И опять облом :-( --- 2007-04-15 Опля, получилось!
В общем запустил 2 проги by_es_password.exe, es_password.exe Включил кнопку ES_PASSWORD. В первой проге наблюдаю (при наведении курсора на вторую прогу на поле Edit1): window CLASS: Edit ES_PASSWORD wm_get TEXT: getwindow TEXT: Created with ES_PASSWORD В_Ы_ключил кнопку ES_PASSWORD. В первой проге наблюдаю (при наведении курсора на вторую прогу на поле Edit1): window CLASS: Edit wm_get TEXT: EDIT #1 getwindow TEXT: Created with ES_PASSWORD Вроде все. На сколько я висту исследовал - не увидел особой разницы в реализации механизма обработки сообщений. Перехват TranslateMessage работал так же , как и в XP.
TermoSINteZ Спасибо ! Из вашего сообщения, возможно, следует, что дыра с PostMessage (см., например, http://www.theone.ru/lists/bugtraq/msg01741.html) - на Висте закрыта. Но все-таки просьба еще раз проверить, причем соблюдая такое условие: или чтоб Edit (на который наведена мышка) был в фокусе, или чтоб окно с этим Edit-ом было активным (просто шмякнуть мышкой).
kero Да вы правы. Пофиксили. Проверил еще раз. В XP при включенном ES_PASSWORD пароль все равно считывается. А вот в Vista получаем пустое поле. Фокус наведен и окно активно. PS. У меня 32х разрядная Vista с последними обновлениями. Так что на 64х разрядной не проверял.
TermoSINteZ >Пофиксили. Значит, в MS решили, что лучше поздно, чем никогда (хотя это слиииишком поздно для ES_PASSWORD) Спасибо еще раз.
##################### Другой способ на XP без всяких хуков увидеть содержимое чужого ES_PASSWORD-эдита: установить стиль "классический" (вместо "Windows XP"), добавить эдиту WS_CAPTION, - и увидеть на заголовке эдита. (Подойдет, например, редактор оконных стилей из HTSpy, там точно без хуков). А как с этим на Vista ?