HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Új gomb elhelyezése az Internet Explorer ToolBar-ján


Példaprogram letöltése

19140 bájt

Az MS Internet Explorer 5-ös verziójától kezdve lehetőségünk van arra, hogy annak ToolBar-ján új nyomógombokat helyezzünk el. Ezekhez a gombokhoz természetesen egyedi funkciókat rendelhetünk, például saját alkalmazásunkat indíthatjuk el vele.

Mellékelt példában egy olyan ablakot nyitunk meg saját gombunk lenyomása esetén, melynek segítségével könnyedén ugorhatunk az általunk megadott web lapok valamelyikére.

A mellékelt példaprogram megnyitása előtt a \Step02\IEButton.pas-ban lévő komponenst telepítenie kell a Delphi alá.
A példa kipróbálásához első lépésként fordítsa le a Step01 könyvtárban lévő programot. Ezek után nyissa meg a Step02-ben lévő project-et és kövesse az ott leírt utasításokat.

A Step01-ben lévő alkalmazás különösebb magyarázatot nem igényel. A Form-on elhelyeztünk néhány TLabel-t, melynek feliratát egy-egy web lap címére változtattuk. Amikor a felhasználó ezekre kattint, akkor indítunk egy új böngészőt és abba betöltjük a kért web lapot.

Nézzük most a Step02-ben lévő TIEButton komponenst. A létrehozandó új gomb feliratát a komponensünk Caption property-ében kell megadnunk. Az Icon és HotIcon property-ben egy-egy ICO állományt adhatunk meg. Ez a két kép jelenik meg a nyomógombon. Az egyik alapesetben, a másik ha egérrel rámutat a felhasználó.
Az Execute property-ben kell megadnunk annak az alkalmazásnak a nevét, elérési útvonalát, melyet a nyomógomb lenyomásakor szeretnénk indítani.

Ha beállítottuk a szükséges property-ket, akkor az AddButton eljárás hívásával létrehozhatjuk az új gombot az Internet Explorer-ben, míg a RemoveButton hívásával eltávolíthatjuk azt. E két eljárást szerkesztési időben is elérhetjük, ha a komponensen jobb gombbal kattintunk majd az eljárásokkal azonos nevű menüpontokat választjuk.

Az egész varázslat abban rejlik csupán, hogy a Windows regisztrációs adatbázisába néhány speciális bejegyzést elhelyezzünk és a többi már az IE dolga.

Az új gomb elhelyezésére az alábbi lépések szükségesek.

Szükségünk lesz egy új GUID azonosítóra. Ilyet a CoCreateGuid hívásával generálhatunk. Ezek után ezt konvertáljuk sztringgé a GuidToString segítségével.
A HKEY_LOCAL_MACHINE \Software\Microsoft\Internet Explorer\Extensions\ kulcsán létre kell hozni egy új kulcsot, mely az imént létrehozott GUID sztringje lesz.
Az így létrejött kulcson a következő sztring típusú bejegyzéseket kell elhelyezni. Kell egy CLSID, melynek értéke kötelezően {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}. Ez hivatkozik az IE azon objektumára, mely többek között a nyomógomb bővítéseket is kezeli.
Szükség lesz még egy Exec értékre, mely a komponens Execute property-ének értékét tárolja. Ehhez hasonlóan az Icon és HotIcon értékei az azonos nevű property-k értékeit tárolja, valamint a ButtonText-be kerül a Caption property-nk értéke. Végül pedig a Default Visible értéket igazra állítjuk, hogy alapértelmezésben látható legyen a nyomógombunk az IE ToolBar-ján.

Befejező lépésként még egy helyen regisztrálnunk kell nyomógombunkat: a \Software\IE5Tools\ToolBar Buttons\ címre el kell helyeznünk egy új sztring értékét, melynek neve a nyomógombunk feliratával egyezik, értéke pedig az imént generált GUID lesz.
procedure TIEButton.AddButton;
var
  g: TGUID;
  reg: TRegistry;
  uid: string;
begin
  if FCaption<>'' then begin
    CoCreateGuid(g);
    uid:=GuidToString(g);
    reg:=TRegistry.Create;
    with reg do begin
      RootKey:=HKEY_LOCAL_MACHINE;
      OpenKey('\Software\Microsoft\Internet Explorer\
             Extensions\'+uid, true);
      WriteString('CLSID', '{1FBA04EE-3024-11D2-8F1F-
             0000F87ABD16}');
      WriteString('Exec', FExecute);
      WriteString('ButtonText', FCaption);
      WriteString('HotIcon', FHotIcon);
      WriteString('Icon', FIcon);
      WriteString('Default Visible', 'Yes');
      CloseKey;
      OpenKey('\Software\IE5Tools\ToolBar Buttons\', true);
      WriteString(FCaption, uid);
      CloseKey;
      Free;
    end;
  end;
end;
A nyomógomb eltávolítása csupán annyiból áll, hogy töröljük az imént létrehozott hivatkozásokat a Windows regisztrációs adatbázisából.
Ahhoz, hogy ezt megtehessük tudnunk kell, hogy mi a generált GUID értéke. Így első lépésként ezt olvassuk ki, majd már csak a törlés marad hátra.
procedure TIEButton.RemoveButton;
var
  reg: TRegistry;
  uid: string;
begin
  if FCaption<>'' then begin
    reg:=TRegistry.Create;
    with reg do begin
      RootKey:=HKEY_LOCAL_MACHINE;
      OpenKey('\Software\IE5Tools\ToolBar Buttons\', false);
      uid:=ReadString(FCaption);
      DeleteValue(FCaption);
      CloseKey;
      DeleteKey('\Software\Microsoft\Internet Explorer\
              Extensions\'+uid);
      Free;
    end;
  end;
end;



Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 144. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |