N
nwnw
Давно уже мучает проблема (и не меня одного), облазил все форумы, перепробывал все советы, изгрыз кучу манов, толку 0х00.
Есть диалоговое окошко, в нем кнопки, для того чтобы нажать на кнопку совершенно справедливо получаем его хендл и посылаем ему сообщения типа SendMessage(h, BM_CLICK, 0, 0); или SendMessage(h, WM_LBUTTONDOWN, 0, 0); SendMessage(h, WM_LBUTTONUP, 0, 0); Таким образом мы имитируем клик мышки, либо жмахание Энтером по клаве - на обычных кнопках все получается, но на множестве остальных, в том числе и сабжевом - нифига, видно что кнопка сначала нажимается, потом отжимается, но и только, сам код не выполняется. Тут начинается самое интересное - известная утилита SpyXX от Микрософта показывает что нажимаем ли мы мышкой по кнопке, что имитируем програмно это дело, окно button получает все те же WM_LBUTTONDOWN сообщения. Заюзав также весьма удобную утилиту InqSoft Window Scanner (там есть сервис для отправки любому окну сообщения с любыми параметрами) отправив кнопке всего два сообщения WM_LBUTTONDOWN и WM_LBUTTONUP удалось добиться выполнения кода окна!!!
Все тот же СпайХХ никакой разницы в посылках этого WM_LBUTTONDOWN из InqSoft Window Scanner и моей проги не выявил! но код то выполняется только из этого злощасного Window Scanner! (жаль сырцов этой проги автор не выложил в опенсорсе)
Звиняйте, что столько букоф, но проблема мучает уже несколько месяцев и нуждается в подробной описании, может кто-нибудь и поможет разобраться...
Есть диалоговое окошко, в нем кнопки, для того чтобы нажать на кнопку совершенно справедливо получаем его хендл и посылаем ему сообщения типа SendMessage(h, BM_CLICK, 0, 0); или SendMessage(h, WM_LBUTTONDOWN, 0, 0); SendMessage(h, WM_LBUTTONUP, 0, 0); Таким образом мы имитируем клик мышки, либо жмахание Энтером по клаве - на обычных кнопках все получается, но на множестве остальных, в том числе и сабжевом - нифига, видно что кнопка сначала нажимается, потом отжимается, но и только, сам код не выполняется. Тут начинается самое интересное - известная утилита SpyXX от Микрософта показывает что нажимаем ли мы мышкой по кнопке, что имитируем програмно это дело, окно button получает все те же WM_LBUTTONDOWN сообщения. Заюзав также весьма удобную утилиту InqSoft Window Scanner (там есть сервис для отправки любому окну сообщения с любыми параметрами) отправив кнопке всего два сообщения WM_LBUTTONDOWN и WM_LBUTTONUP удалось добиться выполнения кода окна!!!
Все тот же СпайХХ никакой разницы в посылках этого WM_LBUTTONDOWN из InqSoft Window Scanner и моей проги не выявил! но код то выполняется только из этого злощасного Window Scanner! (жаль сырцов этой проги автор не выложил в опенсорсе)
Звиняйте, что столько букоф, но проблема мучает уже несколько месяцев и нуждается в подробной описании, может кто-нибудь и поможет разобраться...