Консультация № 35176
10.02.2006, 23:05
0.00 руб.
0 2 2
Здраствуйте!!!
Как "вкалбасить"(Хе-хе)/вставить свою панельку в експлорер/explorer и/или Internet explorer !
Как узнать какой открыт адресс в експлорере! Тоесть указан в Адрессной строке!
Тоесть сделать кнопку на панели эксплорера, и при нажатии моей программе передавался адресс открытого ресурса или путь!!!

Обсуждение

Неизвестный
11.02.2006, 03:44
общий
это ответ
Здравствуйте, chikanok!
Ниже код для создание кнопки на панели в IE, еще ниже для опредиления url в браузере.

p.s. Есть еще функция для того, что бы найти окно Internet Explorer, и захватить из него текущий URL, находящийся в поле адреса IE. Если надо напиши мне.


Приложение:
uses Registry;procedure CreateExplorerButton; const TagID = ‘\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\‘; var Reg: TRegistry; ProgramPath: string; RegKeyPath: string; begin Path := ‘http://www.kakoytosite.ru‘; Reg := TRegistry.Create; try with Reg do begin RootKey := HKEY_LOCAL_MACHINE; RegKeyPath := ‘Software\Microsoft\Internet Explorer\Extensions‘; OpenKey(RegKeyPath + TagID, True); WriteString(‘ButtonText‘, ‘Your Button text‘); WriteString(‘MenuText‘, ‘Your Menu text‘); WriteString(‘MenuStatusBar‘, ‘Run Script‘); WriteString(‘ClSid‘, ‘{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}‘); WriteString(‘Default Visible‘, ‘Yes‘); WriteString(‘Script‘, Path); WriteString(‘HotIcon‘, ‘Путь к значку‘); WriteString(‘Icon‘, ‘Путь к значку‘); end finally Reg.CloseKey; Reg.Free; end; end; {Вместо Script можно использовать Exec, тогда указываем не адрес сайта, а путь к программе которую хотим запустить}---------------------------------------------------------------------uses windows, ddeman;function Get_URL(Servicio: string): String; var Cliente_DDE: TDDEClientConv; temp:PChar; begin Result := ‘‘; Cliente_DDE:= TDDEClientConv.Create( nil ); with Cliente_DDE do begin SetLink( Servicio,‘WWW_GetWindowInfo‘); temp := RequestData(‘0xFFFFFFFF‘); Result := StrPas(temp); StrDispose(temp); //<<-Предотвращаем утечку памяти CloseLink; end; Cliente_DDE.Free; end; Пример вызова функции showmessage(Get_URL(‘IExplore‘));
Неизвестный
11.02.2006, 09:51
общий
это ответ
Здравствуйте, chikanok!
Интеграция в IE.
Комментарии:
ButtonText = Всплывающая подсказка к кнопке
MenuText = Текст, который будет использован для пункта в меню "Сервис"
MenuStatusbar = *Ignore*
CLSID = Ваш уникальный classID. Для создания нового CLSID (для каждой кнопки) можно использовать GUIDTOSTRING.
Default Visible := Показать ей.
Exec := Путь к Вашей программе.
Hoticon := иконка из shell32.dll когда мышка находится над кнопкой
Icon := иконка из shell32.dll
Вожможно, после этого иконка не будет стоять на панели, но ее моно будет добавить в настройке панели инструментов IE.
procedure CreateExplorerButton;
const
TagID = ‘\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\‘;
var
Reg: TRegistry;
ProgramPath: string;
RegKeyPath: string;
begin
ProgramPath := application.ExeName;
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
RegKeyPath := ‘Software\Microsoft\Internet Explorer\Extensions‘;
OpenKey(RegKeyPath + TagID, True);
WriteString(‘ButtonText‘, ‘Your program Button text‘);
WriteString(‘MenuText‘, ‘Your program Menu text‘);
WriteString(‘MenuStatusBar‘, ‘Run Script‘);
WriteString(‘ClSid‘, ‘{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}‘);
WriteString(‘Default Visible‘, ‘Yes‘);
WriteString(‘Exec‘, ProgramPath);
WriteString(‘HotIcon‘, ‘,4‘);
WriteString(‘Icon‘, ‘,4‘);
end
finally
Reg.CloseKey;
Reg.Free;
end;
end;
Форма ответа