Опишу ситуацию. Имеется браузер, построенный на движке Internet Explorer'a. Что необходимо: при вводе определённого текста в адресную строку (например, http://куча_вирусов.ru/самый_страшный_вирус.exe) текст в адресной строке заменяется на другой (например, http://127.0.0.1/не_ходи_туда.htm) и нажимается программно кнопка "Переход". Первую часть задачи получилось сделать нормально: С помощью Spy++ отследил названия классов окон (рис. 1.jpg в архиве-вложении). Повезло, они оказались уникальными в необходимых пределах. Таким образом получил хэндл адресной строки: hwnd=FindWindowEx(hwnd, 0, "Acoo Browser", NULL) далее hwnd=FindWindowEx(hwnd, 0, "ReBarWindow32", NULL) далее hwnd=FindWindowEx(hwnd, 0, "_AddressBar", NULL) далее hwnd=FindWindowEx(hwnd, 0, "ComboBox", NULL) далее hwnd=FindWindowEx(hwnd, 0, "Edit", NULL) Далее с помощью SendMessage(hwnd, WM_GETTEXT, TextLength + 1, buffer) получил текст в адресной строке; с помощью SendMessage(hwnd, WM_SETTEXT, 0, "http://127.0.0.1/не_ходи_туда.htm") заменил текст в адресной строке А вот как программно нажать кнопку "переход"? Название класса кнопки "_ToolBarXP" и на "_AddressBar" - 2 окна с таким именем! (рис 1.jpg). Это сама кнопка "переход" (рис. 3.jpg) и другая кнопка "адрес" (рис. 4.jpg). Так как её нажать программно? Кнопка также содержит список (рис. 2.jpg). Можно ли программно "нажать" нужный пункт из этого списка? Подскажите, пожалуйста. Если можно, очень прошу кинуть код на каком-нибудь ЯВУ. P. S. Поиск решения этого в поисковиках не дал результатов.
Вложение (70 Кб) Здесь добавить к сообщению - не добавляется, пробовал и на 2 части разбивать по 35 Кб - тот же результат! Залил тут: http://rapidshare.com/files/21728065/Pic.zip
IWebBrowser? Так приатачь обработчик событий, там есть событие BeforeNavigate, получает URL в качестве параметра, если вернешь false то переход не происходит
Есть вариант прописать сайту куча_вирусов.ru *нужный* IP-адрес в %windir%/system32/drivers/etc/hosts (могу в пути ошибиться)
Нужно реализовать всё именно так именно так В день более десятка тысяч уникальных адресов прописывать? )) Нет, AcooBrowser
я бы все-таки подумал о прокси.. возможно, уже существующих lol! (sorry) http://msdn.microsoft.com/library/d...eference/ifaces/iwebbrowser2/iwebbrowser2.asp
_Sysman_ 1. Так какая разница куда прописывать: в hosts или в программу _специальная_программа_??? 2. Мой мозг не выдерживает таких извращений Путей обхода такой _защиты_ милъён+1 ИМХО прокси - это наше всё! 3. Есть регулярно обновляемые блок-листы.