
A mellékelt példa használatához a következő lépésekre van szükség: a mellékelt Reg.reg állományban lévő elérési utat módosítsa úgy, hogy az az Alllinks.htm állományra mutasson, majd mentse és zárja be az állományt és adja hozzá Windows regisztrációs adatbázisához. Ezt követően fordítsa le a mellékelt projektet és egyszer futtassa is, hogy a program automatikus regisztrációja is megtörténjen a Windows regisztrációs adatbázisba. Ezt követően indítson el egy böngészőt. Ha van betöltött web oldal, akkor annak területén kattintson jobb egér gombbal és válassza a Minden hivatkozás menüpontot. Ennek hatására elindul a példaprogram, mely kigyűjti az adott oldalról az összes link által megcímzett URL-t.
A gyorsmenü kiegészítése
Az IE gyorsmenüjét egy egyszerű Windows regisztrációs adatbázis bejegyzéssel tudjuk bővíteni. Ha a \Software\Microsoft\Internet Explorer\MenuExt\ kulcs alá elhelyezünk egy újabbat, akkor az automatikusan megjelenik. Az új bejegyzéshez azonban csak egy HTML állományt rendelhetünk hozzá.
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Minden hivatkozás]
@="file://F:\\So\\Dso\\0425\\IELinks\\alllinks.htm"
Ebben a HTML állományban azonban bármi lehet, így akár egy VB script is, amivel már tudjuk aktivizálni saját alkalmazásunkat és ott bármit megtehetünk.
A szükséges HTML állomány
Nézzük mi is található a HTML állományunkban, mely akkor kerül betöltésre, ha kiválasztjuk a böngészőben a Minden hivatkozás menüpontot.
<script language="VBScript">
Létrehozunk egy kapcsolatot a programunkkal.
Set ielink = CreateObject("IELinksProject.IELinkAutoObject")
Majd lekérdezzük az aktuális web oldalon található linkek kollekcióját egy változóba.
Set links = external.menuArguments.document.links
Végigmegyünk ezen a kollekción és meghívjuk alkalmazásunk Add függvényét, melynek paraméterként átadjuk az adott link által mutatott URL címet. Vagyis azt a sztringet, mely a HTML kód <a> tagjának href paraméterében van megadva.
For i = 0 to links.length - 1
ielink.Add links(i).href
next
Végül meghívjuk alkalmazásunk Show függvényét, annak érdekében, hogy az elkészült lista megtekinthető legyen.
Az alkalmazás elkészítése
Hozzunk létre egy hagyományos projektet, mely EXE-t készít, majd válasszuk az File - New menüpontot és a megjelenő ablakban az ActiveX lapon az Automation Object elemet. CoClassName-nek válasszuk az IELinkAutoObject nevet.
A létrejövő IELinksProject_TLB ablakában válasszuk a New Method menüpontot. Ekkor létrejön egy új függvény, melynek adjuk az Add nevet. A Parameters lapon adjunk hozzá egy új paramétert, melynek neve legyen Link és típusát válasszuk BSTR-re.
Hozzunk létre most egy Show nevű függvényt is, melyhez nem kell paraméter.
Ezek után kattintsunk a Refresh Implementation gombra. Ekkor a Unit2.pas-ban létrejön e két függvény kerete, így nekünk már csak a szükséges kódot kell megadni.
Ez előtt a Form1-re még tegyünk fel egy ListBox-ot. Ebbe gyűjtjük majd a linkeket.
Az Add eljárás kódja egyszerű: a VB script ezt akkor hívja meg, amikor egy-egy linket át akar adni, így nincs más teendőnk, mint a kapott sztringet hozzáadni a ListBox-hoz.
procedure TIELinkAutoObject.Add(const Link: WideString);
begin
Form1.ListBox1.Items.Add(Link);
end;
A Show eljárásban megjelenítünk egy dialóg ablakot. Erre azért van szükség, mert a VB script lefutása után a projektünk is bezáródna, így nem látnánk semmit a linkekből.
procedure TIELinkAutoObject.Show;
begin
ShowMessage('Bezárás');
end;
A továbbfejlesztés
Most hogy már adott egy web lapon szereplő összes link, már csak egy egyszerű lépés, hogy programunkat továbbfejlesszük abba az irányba, hogy le is töltse ezeket a linkeken található információkat, állományokat. Ennek megvalósításával pedig elérhetjük azt, hogy egy-egy web oldalon lévő összes letölthető állományt egyetlen kattintással letöltsünk saját gépünkre.
Megjegyzés
A program elkészülte után ne felejtsük el egyszer futtatni, hogy Windows regisztrációs adatbázisba bekerüljön a megfelelő hivatkozás, mivel csak így tudjuk majd script-ből a CreateObject("IELinksProject.IELinkAutoObject") hivatkozással elindítani a programot.