Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #85, ЯНВАРЬ 2006 г.

Панель для проксей

f0gg0t (f0gg0t@gmail.ru)

Хакер, номер #085, стр. 085-120-4


HKEY_CLASSES_ROOT\CLSID\[ГУИД]\InProcServer32. Не будем зацикливаться на поточной модели COM, и в ключ ThreadingModel запишем Apartment. Если тебя интересует, что это за зверь, то литературы по COM существует огромное количество, и, думаю, с поиском проблем возникнуть не должно.

HKEY_CLASSES_ROOT\CLSID\[ГУИД]\Implemented Categories\[Тип тулбара]. В этом ключе писать ничего не надо, его нужно просто создать. Он будет давать характеристику нашему COM-серверу. В нашем случае тип тулбара - это DeskBand, а его GUID равен {00021492-0000-0000-C000-000000000046}, что очень легко запомнить :).

И кульминационным моментом регистрации является объявление нашего COM-сервера как тулбара. В HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser создаем пустой ключ [ГУИД] и начинаем распечатывать следующую бутылку сока.

Но что делать с этими [ГУИД]? Как же открывать ключи реестра, они ведь string, а это TGUID? А легко! Существует такая функция, как GuidToString. Вот и используй ее по назначению.

Не забыв сделать в процедуре анрега удаление ранее созданных ключей, можно считать, что зверюга готова. И что можно начинать учить ее жизни ;).

[объезжаем]

Форма готова, но она пуста и проку от нее не больше, чем от безалкогольного сока. Придется исправлять. На форме у нас расположится ComboBox и кнопка. В ComboBox'е будет находиться сам прокси лист, а кнопкой мы будем менять прокси на выбранный нами вариант. Чтобы прицепить проксик к IE особого труда не требуется, всего-навсего нужно менять значение ключа HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer на значение вида proxy:port, а также изменить стоящий рядом ключ ProxyEnable на 1, и дело в шляпе. С этим проблем возникнуть не должно. Так как в ComboBox'е будут храниться все проксики, то мы должны сохранять этот лист и загружать при создании тулбара. В событии FormCreate прописываешь Combobox1.Items.LoadFromFile('C:\Proxy.txt'), и прокси оказываются в листе, а сохранять их надо в событии FormDestroy Combobox1.Items.SaveToFile. Вот и все, чейнджер прокси закончен.

Теперь у тебя есть dll'ка, но прежде чем радоваться жизни и допивать слабоалкогольные напитки, мирно стоящие у тебя на столе, стоит ее зарегистрировать. Делается это с помощью стандартной виндовой утилиты regsvr32.

[вот так подгружаем нашу панель]

regsvr32 C:\proxybar.dll

[а так выгружаем]

regsvr32 -u C:\proxybar.dll

Так как регистрация проходит через метод UpdateRegistry, то можно вставить туда что-нибудь вроде ShowMessage('Спасибо тебе за регистрацию') или сразу редиректить на страницу разработчика. Кстати, о птичках. Чтобы получить контроль над браузером, будь то редирект или получение контента странички, тебе потребуется разобраться с интерфейсом IWebBrowser2. Думаю, что ты уже сталкивался с компонентом TwebBrowser. Все функции, которые в нем есть, заимствованы как раз из IWebBrowser2. Ты можешь юзать функции Navigate, Stop, Refresh и быть счастливым, но помни, что нельзя делать так: IE.Navigate(Url, 0, 0, 0, 0); нужно обязательно объявить переменную типа OleVariant и присвоить ей значение: IE.Navigate(Url, X, X, X, X); Никаких нулей!

Назад на стр. 085-120-3  Содержание  Вперед на стр. 085-120-5