HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egyedi böngészősáv létrehozása az IE-hez


Böngészősáv 3. rész

Példaprogram letöltése

12271 bájt

Sorozatunk befejező részében elkészítjük az új böngészősávot az eddig létrehozott osztályok felhasználásával. A cikkben megismerkedhetünk továbbá Global Assembly Cache használatával is, valamint a Strong Name Key készítésével, illetve új GUID azonosító generálásával.

A mellékelt példa megnyitása előtt a sorozat előző két részében közreadott Interfaces.cs és BandControl.cs forráskódokat másolja át a most mellékelt BandClassLibrary mappába. Ezt követően nyissa meg és fordítsa le az ExplorerBars.sln-t. További szükséges lépés, hogy az \ExplorerBars03\SoftwareOnlineClassLibrary\bin\Release könyvtárba létrejött két DLL-t regisztrálja a Global Assembly Cache-be. Ehhez indítson el egy parancssort (Visual Studio .NET Command Prompt), majd írja be a következőt:
gacutil /if BandClassLibrary.dll
gacutil /if SoftwareOnlineClassLibrary.dll
A két DLL sikeres regisztrációja után indítson el egy IE böngészőt és válassza a Nézet - Böngészősáv - Software Online Bar menüpontot.
Az előző két részben csak egy-egy osztályt készítettünk el. Most létrehozunk egy DLL-t, mely tartalmazza az ős osztályt, melyből majd tetszőleges böngészősávokat származtatunk. Ezt a DLL-t csak egyszer kell elkészítenünk és ezt követően csak felhasználnunk kell, ha egy-egy új böngészősávot készítenénk. Ez az ős osztály kerül a BandClassLibrary.dll-be.
A másik DLL, amit létrehozunk az lesz a konkrét böngészősáv megvalósítása, mely a SoftwareOnlineClassLibrary.dll-be kerül.
Mind a két DLL-t a Global Assembly Cache-be (GAC) tároljuk. Ezt egy intézővel is megtekinthetjük a C:\Windows\Assembly virtuális mappában. Ez a hely tárolja azokat a DLL-eket, melyeket több program is használhat. Régebben sok gond volt a különböző verziójú, vagy az azonos nevű DLL-ek esetén, melyek a Windows, vagy a System mappába kerültek bemásolásra. A Global Assembly Cache-be egy DLL több verziója is bekerülhet, sőt akár azonos nevű DLL-ek is helyet kaphatnak. Persze ez esetben is kell különbséget tenni az egyes DLL-ek között. Erre szolgál a Strong Name Key, mely nem más mint egy egyedi azonosító, ami garantálja, hogy egyedivé teszi az adott DLL-t az azonosítás szempontjából. A Global Assembly Cache-be (GAC) e nélkül nem fogunk tudni DLL-t helyezni. Fizikailag a Strong Name Key nem más, mint egy állomány snk kiterjesztéssel. Ezt kell hozzáadni a projektünkhöz és a többi már a fordító dolga. SNK állomány előállításához a .NET Framework részeként kapunk egy sn.exe segédalkalmazást. Ezt alapértelmezésben a C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin könyvtárban találjuk. Új SNK állomány előállításához indítsuk el ezt a programot a -k kapcsolóval, mely után megadhatjuk annak az állománynak a nevét, melyet szeretnénk létrehozni.
sn -k softwareonline.snk
Ha adott ez az állomány, akkor már csak az van hátra, hogy megadjuk a projektünk számára, hogy ezt fel is használja. Mellékelt példában mind a két DLL-nél megadtuk ezt.
Válasszuk a Solution Explorer-ben az adott projektet, majd jobb gomb és Properties menüpont választása után a General beállítási lehetőségeknél találunk egy Wrapper Assembly Key File mezőt. Itt adjuk meg az SNK állományunk elérési útvonalát, nevét.
SoftwareOnlineClassLibrary
A SoftwareOnlineClassLibrary.dll projektbe vegyük fel referenciaként a BandClassLibrary-t, valamint az IE eléréshez szükséges SHDocVw-t. Ez utóbbit az Add - Reference menüponttal nyíló ablak COM lapján találjuk a Microsoft Internet Controls elemet választva.
A létrehozott DLL-hez adjunk hozzá egy új kontrolt a BandControl-ból származtatva.
   public class SoftwareOnlineControl: BandControl
   {
Ezen osztályhoz kell megadnunk attribútumként, hogy mi legyen a böngészősávunkhoz tartozó menüpont felirata, valamint rövid leírása. Ehhez használjuk a BandAttribute osztályt.
  [BandAttribute("Software Online Bar", "Help")]
Az osztályt majd regisztrálni is kell a Windows regisztrációs adatbázisba, melyhez szükség lesz egy új GUID azonosítóra, melyet szintén attribútumként adunk meg. Ezt a regisztrációt a BandControl ős osztály végzi el. Új GUID generálásához válasszuk a Tools - GUID menüpontot, majd a GUID Format-nál a Registry Format-ot választva helyezzünk a vágólapra egy új GUID-ot, majd ezt illesszük be a forráskódunkba.

  [Guid("B360D8C1-B236-4CA5-894D-9929BA01CC5A")]
A példa egyszerűségének kedvéért most csupán egy nyomógombot helyezünk el az új böngészősáv kontrolunkon, mely arra képes, hogy egy általunk megadott URL címre navigálja el a megnyitott IE böngészőt. Ehhez az ős osztályban rendelkezésre álló Explorer objektum Navigate függvényét hívjuk meg, ahol az első paraméterben megadhatjuk, hogy melyik web helyet nyissa meg a böngésző.
    private void button1_Click(object sender, System.EventArgs e)
    {       
      Explorer.Navigate("http://www.SoftwareOnline.hu", ref m, ref m, ref m, ref m);
    }
A projekt lefordítása után létrejön a DLL, melyet el kell helyeznünk a GAC-ba. Ehhez a cikk elején már említett módon kell eljárnunk:
gacutil /if BandClassLibrary.dll
gacutil /if SoftwareOnlineClassLibrary.dll
A programunk futásakor ne felejtsük el azt, hogy a DLL a GAC-ból kerül felhasználásra, így ha módosítjuk és újrafordítjuk azt, akkor szükséges az is, hogy újra elhelyezzük a DLL-t a GAC-ba. Ehhez ismét a gacutil segédprogramot kell használnunk.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 426. 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 |