Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Internet Explorer Plugin [D4, D5, D6, D7, Win95/98, WinME, Win2k, WinXP]


Delphir ©   (2004-08-25 13:17:00) 

Народ, подскажите как написать плагин для Internet Explorer.

Цель такова:
1. на панеле рядом с остальными кнопками должна появиться кнопочка плагина. (по идее для этого достаточно прописать пару ключей в реестре)
2. по нажатию кнопочки сбоку должно появляться окошко, но НЕ НОВОЕ!!!! тоесть оно должно появляться там где появляется адреса из "истории" или "фавориты"! Ну а в окошке уже может быть все что угодно :) (тоесть форма с какими-либо функциями)

Проблема:
как осуществить второй пункт?  :)


OSokin   (2004-09-01 17:50:00) [1]

Просто где то проходила такая же тема по форуму, и я тебе дал оттуда исходник


Delphir   (2004-08-28 18:24:00) [2]

2: OSokin ©
по нажатию кнопочки сбоку должно появляться окошко, но НЕ НОВОЕ!!!! тоесть оно должно появляться там где появляется адреса из "истории" или "фавориты"! Ну а в окошке уже может быть все что угодно :) (тоесть форма с какими-либо функциями)

==========
приведенный вами код годен только для веб-страниц!!! а я хочу сделать СВОЮ ФОРМУ СО СВОИМИ КНОПКАМИ и тд. судя по инфе в инете все это должно храниться в длл-ке. но мне не удалось наити исходников под дэльфу, все что встречалось - это под различные вариации с++


OSokin   (2004-08-28 17:56:00) [3]

function AddExplorerBar(BarTitle, Url: string; BarSize: Int64; Horizontal:
 Boolean): string;
const
 EXPLORERBAR_ID = '{4D5C8C2A-D075-11d0-B416-00C04FB90376}';
 VERTICAL_BAR = '{00021493-0000-0000-C000-000000000046}';
 HORIZONTAL_BAR = '{00021494-0000-0000-C000-000000000046}';
var
 GUID: TGUID;
 SysDir, ID: string;
 Reg: TRegistry;
begin
 CreateGuid(GUID);
 ID := GuidToString(GUID);
 Reg := TRegistry.Create;
 with Reg do
 try
   RootKey := HKEY_CLASSES_ROOT;
   OpenKey('\CLSID\' + ID, True);
   WriteString('', 'BarTitle');
   CloseKey;
   CreateKey('\CLSID\' + ID + '\Implemented Categories');
   if HORIZONTAL then
     CreateKey('\CLSID\' + ID + '\Implemented Categories\' +
       HORIZONTAL_BAR)
   else
     CreateKey('\CLSID\' + ID + '\Implemented Categories\' +
       VERTICAL_BAR);
   SetLength(SysDir, 255);
   GetSysDirectory(PChar(SysDir), 255);
   SysDir := PChar(SysDir) + '\SHDOCVW.DLL';
   OpenKey('\CLSID\' + ID + '\InProcServer32', True);
   Writestring('', SysDir);
   WriteString('Threadingmodel', 'Apartment');
   CloseKey;
   OpenKey('\CLSID\' + ID + '\Instance', True);
   WriteString('CLSID', EXPLORERBAR_ID);
   CloseKey;
   OpenKey('\CLSID\' + ID + '\Instance\InitPropertyBag', True);
   WriteString('Url', URL);
   CloseKey;
   RootKey := HKEY_LOCAL_MACHINE;
   OpenKey('Software\Microsoft\Internet Explorer\Explorer Bars\'
     + ID, True);
   WriteBinaryData('BarSize', BarSize, SizeOf(BarSize));
   CloseKey;
   OpenKey('\Software\IE5Tools\Explorer Bars\', True);
   WriteString(BarTitle, ID);
   CloseKey;
   OpenKey('\Software\Microsoft\Internet Explorer\Toolbar', True)
     WriteString(ID, '');
   CloseKey;
 finally
   Free;
 end;
 result := ID;
end;
procedure CreateExplorerButton;
const
 TagID = '\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\';
var
 Reg: TRegistry;
  ProgramPath: string;
 RegKeyPath: string;
begin
ProgramPath := 'c:\folder\exename.exe';
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;


Delphir   (2004-08-28 17:02:00) [4]

2: DiamondShark ©

Не, ну спасибо конечно... но это не то, что я хотел увидеть :)

Мои знания не достаточно сильны, чтобы по такому мануалу написать рабочий код. Да и в добавок он под c++.

Я хотел увидеть простенький примерчик под ДЭЛЬФУ! и опираясь на него уже что-то творить!


DiamondShark   (2004-08-27 13:21:00) [5]

http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/extensions.asp

Обленились совсем...


Delphir   (2004-08-27 13:06:00) [6]

Это значит что новых форм появляться не должно. остряк.


Ega23   (2004-08-25 14:31:00) [7]

но НЕ НОВОЕ!!!!

"Не новое" - это Б/У?


Наверх

Титульная страница Поиск, карта сайта Написать письмо