И так сейчас мы с тобой пропатчим всеми любимый Internet Explorer, но патчить будем не на баги, а на кнопку=) Смешно звучит, тем не менее еще много людей сейчас юзают ослик, и я думаю что красивая и функциональная кнопочка не кому не помешает! И так приступим: Прежде всего скажу что писать мы будем все на Delphi, у меня 6 версии, у тебя незнаю какой=) Но это неважно, главное что мы оба любим Borland. Для начала создадим новый проект! Думаю нестоит обьяснять как это зделать) Создали...Теперь поместим на форму вот что:
Button = 1 штука
RadioButton = 2
Image = 1
и еще можно прилепить один баттон для хелпа или эбаута. Зделали! Теперь посмотрим кто какие функции будет выполнять Загланем в код программы... Первой процедурой у меня идет:
procedure TForm1.RadioButton1Click(Sender: TObject); begin Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + '4.ico'); end;
//Тоесть когда ты в программе выбереш 1 RadioButton то увидиш иконку, которая будет на кнопке в IE, ведь //пользователь должен видеть, что он выбирает! Но одна иконка тоже как то несолидно, давай добавим еще одну! //Как и в предыдущей процедуре, что бы вызвать событие OnClick, надо просто 2 раза клацнуть по компоненту, в //данном случае это RadioButton. Клацнули и вписали событие показа второй иконки( Иконки будут выводится в //Image, о чем говорит вот эта процедура :Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + //'6.ico'); здесь мы видим, что иконка имеет номер 6: '6.ico', вот она и будет видна при нажатии RadioButton. //Вот вся процедура:
procedure TForm1.RadioButton2Click(Sender: TObject); begin Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + '6.ico'); end;
//Дальше, больше... Обрабатываем OnClick у нашей кнопки, назови ее Старт или Patch как у меня=)
procedure TForm1.Button1Click(Sender: TObject); const TagID = '{10954C80-4F0F-11d3-B17C-00C0DFE39736}'; // здесь мы прописали в реестр уникальный ID нашей //кнопочки! Да незабудь в uses добавить registry! //Спускаемся ниже, задаем переменные... var Reg: TRegistry; ProgramPath: string; RegKeyPath: string;
//И наконецто самое главное - создание кнопки! И так пишем:
begin ProgramPath := ('http://www.hackzona.ru'); //- тут должно было быть местонахождение нашей программы на диске, //но мы чуть чуть обманули Delphi и вписали URL =)
Reg := TRegistry.Create; //- Создали запись в реестре!
//И создаем саму кнопку....
try with Reg do begin
RootKey := HKEY_LOCAL_MACHINE;
RegKeyPath := 'SoftwareMicrosoftInternet ExplorerExtensions'; //- прописываем значения в реестр
OpenKey(RegKeyPath + TagID, True);
WriteString('ButtonText', 'www.HackZona.ru'); //- Это название нашей кнопки
WriteString('MenuText', 'www.HackZona.ru'); //- тут понятно =)
WriteString('MenuStatusBar', 'Run Script');
WriteString('ClSid', '{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}'); //ключ реестра, за что то отвечающий(нам это не к чему пока)
WriteString('Default Visible', 'Yes'); //- будет ли наша кнопка видимой
WriteString('Exec', ProgramPath);
if RadioButton1.Checked then //- Если RadioButton1 нажат то...
WriteString('HotIcon', ExtractFilePath(Application.ExeName) + '4.ico'); //получаем иконку, и запихиваем ее куда надо =)
Reg.CloseKey; //- Все зделалиЮ закрываем ветку реестра.. Reg.Free; end; end;
//И последнее :
procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + '2.ico'); end; end.
//В обработчике события OnCreate главной формы прописали картинку, что бы наша Image непустовала до нажатия //RadioButton . Вот и все!!! Теперь рисуй свои кнопки, и лепи их в IE =) // Да и чуть незабыл :
WriteString('HotIcon', ExtractFilePath(Application.ExeName) + '6.ico'); //- HotIcon означает какая иконка будет //на кнопке при наведении на нее мыши, а Icon когда кнопка находится без действия.
Еще в ProgramPath := ('http://www.hackzona.ru'); //вместо URL можеш вписать путь к какой нить программе, она будет запускаться при нажатии на твою кнопку=) Все вроде ничего незабыл..................................... Программу можно скачать отсюда http://slil.ru/22922245 пароль на архив hackzona ............................................................................................................
Это моя первая статья, прошу несудите строго =)) by LEE_ROY (OverFlow SecuritY TeaM) ............................................................................................................