A mai dev cikkemben bemutatom nektek a ma alkotott kis projektetem. Igazából lehetne mit javítani rajta. Félkész állapotnak lehetne nevezni, de mostani állapotában is tökéletesen használható.
Bár a ZippyShare nem korlátozza a letöltési sebességet, de mégis ahogy láthatjuk egyre több a reklám. Megnyitjuk az oldalt és új lapot nyit egy reklámnak, alul pedig 3 boxban kap helyet, melytől rendkívűl szaggathat a böngésző, hisz a letöbb megjelenő reklám flash.
Nos, térjünk a tárgyra.
Mutatom videóban is, hiszen sokan inkább youtube-on néznék végig:
A webbrowsert természetesen behívhattam volna, akár dim alá is. (lásd)
Dim wbrowser As Webbrowser = New Webbrowser()
Ha ezzel a sorral csináljuk, akkor valószínűleg lesz, aki nem ért meg pár részletet a kódban, ezért sima beillesztett webbrowser-rel csináljuk.
Ami kell a Design form-ra:
- Textbox (név: txt_url)
- Button (név: btn_download , megjelenő szöveg: Download)
- Webbrowser
Második lépésként szükségünk lesz a "Microsoft HTML Object Library" COM kiegészítőre. A fejlécen keressük meg a "Project"-t, nyissuk le és válasszuk ki az "Add Reference"-t.
A "COM" menüpont alatt keressük meg a "Microsoft HTML Object Library", tegyünk mellé egy pipát és nyomjunk oké gombot.
A Form-ra kattintsunk kétszer (bal klikk), majd Public class Form1 felett írjuk be a következőt:
Imports mshtml
Ezzel tudjuk behívni azt amit referenciaként hozzáadtunk a projekthez.
Menjünk vissza a Form1 (Design).vb lapra, kattintsunk kétszer a "Download" buttonra és a Webbrowser1-re.
A Public class Form1 alá írjuk be a következőt:
Dim research As Boolean = True
A boolean tartalma csakis True (igaz) vagy False (hamis) lehet, tehát a research változó most true, azaz igaz értéket kapunk vissza.
A Private Sub btn_download_click(...) tartalma a következő.
research = True
WebBrowser1.Navigate(txt_url.Text)
A webbrowser1 megkapja a textbox-ba beillesztett URL-t, illetve a research true (igaz lesz), ami a következő sorokban jelent lényeges dolgot.
A Private Sub WebBrowser1_DocumentCompleted(...) tartalma:
For Each link As HtmlElement In WebBrowser1.Document.Links
If research = True Then
If link.Id = "dlbutton" Then
If InStr(link.GetAttribute("href"), "/d/") Then
research = False
WebBrowser1.Navigate("http://" & txt_url.Text.Split("/")(2) & link.GetAttribute("href"))
End If
End If
End If
Next
Az első sorban kikérjük a webbrowser tartalmát, abból pedig a linkeket. Ha a research = true, tehát igaz, akkor lefut.
A linkeknél ellenőrizzük, hogy melyik talrtalmaz "dlbutton" id-t, ha van ilyen, akkor az instr(szöveg, "ez megtalálható benne?") ellenőrízzük, hogy a "/d/" létezik-e benne, mivel a linkünk így kezdődik. Ha igen, akkor a research false-re azaz hamisra változik és megáll a lekérdezés (minek terheljük tovább a processzort).
Ugyan abba a webbrowser-be meghívjük a linket, a txt_url.text.split("/")(2) annyit jelent, hogy a második / és a harmadik / között kivesszük a szöveget a textboxból (pl: www52.zippyshare.com ) , utána pedig hozzácsatoljuk a href-ben kapott linket, tehát ami "/d/" -vel kezdődik.
A kód képekben így néz ki:
Ez a projekt igazából nincs túlbonyolítva. Van szebb megoldás is, de hogy mindenkinek érhető legyen, először így mutattam be!
Hozzászólások
-