пятница, 2 декабря 2011 г.

Подмена URL в Intenet Explorer

Ну вот решил описать такую штуку как "Подмена URL в Intenet Explorer", но метод не ух ты какой , потому что будет видно URL которое  мы вписали в программе.
Суть метода это посылание (Send/Post)Message , компонентам ИЕ ( Intenet Explore ).
Ну что бы узнать в какое окно нам нужно посылать сообщения я юзал  Spy++.
Сначала мы ищем главное окно , будем искать его по классе окна ИЕ :
FindWindow(PCHAR("IEFrame"),NULL);
Дальше ищем с помощью  функции FindWindowEx(); дочерние окна.
WorkerW
ReBarWindow32
Address Band Root
Edit - вот это нам надо , так как тут и надо вписывать свою URL;

Скрин Spy++.Что бы было понятней.

Дальше нам надо как то в поле Edit вставить свой URL, для этого мы заюзаем функцию SendMessage();
это будет выглядит так (edit, WM_SETTEXT, 0, LPARAM(PCHAR("google.com ")));
Ну вроде как URL заменили , теперь надо что бы браузер перешел по  этому линку , для этого мы отправим PostMessage(); , что бы нажался ENTER.
PostMessage(edit, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(edit, WM_KEYUP,   VK_RETURN, 0);
Ну вот теперь в ИЕ отображается наш сайт , тот что нам надо ...

Вот и все.


код программы:


#include <windows.h>
void main()
{
HWND ie,worker,toolbar,comboboxex,edit;
ie = FindWindow(PCHAR("IEFrame"),NULL);
worker = FindWindowEx(ie,0,"WorkerW",NULL);

toolbar= FindWindowEx(worker,0,"ReBarWindow32",NULL);
comboboxex = FindWindowEx(toolbar, 0, "Address Band Root",NULL);
edit = FindWindowEx(comboboxex,0,"Edit",NULL);

SendMessage(edit, WM_SETTEXT, 0, LPARAM(PCHAR("http://www.dojki.com ")));
PostMessage(edit, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(edit, WM_KEYUP,   VK_RETURN, 0);
}