Serißl - 16. dφl
Ovlßdacφ prvky pro sφ¥ovou komunikaci - 2. Φßst
16. Ovlßdacφ prvky pro sφ¥ovou komunikaci
16.2 WebBrowser
16.3 Inet
16. Ovlßdacφ prvky pro sφ¥ovou komunikaci
V dneÜnφ Φßsti si probereme dalÜφ prvky slou₧φcφ k sφ¥ovΘ komunikaci. P°esn∞ji p∙jde o
prvek WebBrowser a Inet. K Φemu slou₧φ se dozvφte v jednotliv²ch kapitolßch.
16.2 WebBrowser
WebBrowser je prvek, kter² slou₧φ hlavn∞ k prßci s HTML dokumenty. Umφ takΘ
zobrazovat slo₧ky na lokßlnφm poΦφtaΦi nebo na sφti. Umφ toho velmi mnoho, proto
si probereme pouze n∞kterΘ zßkladnφ operace. Do projektu jej za°adφte zatr₧enφm polo₧ky
Microsoft Internet Control v dialogu Components z menu
Project -> Components.
Kterou strßnku chcete zobrazit urΦφte metodou Navigate nebo Navigate2 .
Je ·pln∞ jedno, kterou z nich pou₧ijete, Navigate2 mß v²znam pouze v jazyku C++.
Prvnφ parametr metody je URL strßnky. Druh² m∙₧e b²t kombinace hodnot, urΦujφcφch
jak se strßnka otev°e:
1 |
otev°enφ strßnky v novΘm okn∞ |
2 |
nep°idß strßnku do historie |
4 |
neΦte data z diskovΘ vyrovnßvacφ pam∞ti (cache) |
8 |
nezapφÜe zobrazenou strßnku do diskovΘ vyrovnßvacφ pam∞ti (cache) |
T°etφ parametr urΦuje nßzev rßmce, ve kterΘm se strßnka otev°e. Metoda mß jeÜt∞ dva dalÜφ
parametry, kterΘ by vÜak bylo zbyteΦnΘ probφrat v tomto krßtkΘm p°ehledu.
'Otev°e soubor C:\serial.htm
WebBrowser1.Navigate "file://C:\serial.htm"
'Strßnku www.seznam.cz otev°e v novΘm okn∞
WebBrowser1.Navigate "http://www.seznam.cz", 1
'Otev°e slo₧ku D:\DATA v novΘm okn∞ a nep°idß ji do historie
WebBrowser1.Navigate "file://D:\DATA", 3
Pro rychlejÜφ navigaci slou₧φ n∞kolik metod. GoBack se posune o jednu
strßnku v historii zp∞t, GoForward o jednu strßnku dop°edu. Chcete-li
zobrazit domovskou strßnku, m∙₧ete pomocφ metody GoHome . Poslednφ
metoda pro navigaci je GoSearch , kterß zobrazφ vyhledßvacφ strßnku
(nastavuje se v dialogu Internet v ovlßdacφch panelech nebo p°φmo z Internet Exploreru).
Jak u₧ bylo °eΦeno na zaΦßtku, prvek WebBrowser mß jeÜt∞ mnoho dalÜφch mo₧nostφ, ale
my si je zde probφrat nebudeme. Spoustu informacφ najdete v MSDN. Dejte si vÜak pozor
na to, k Φemu je nßpov∞da vlastn∞ napsßna. Stejnß nßpov∞da je toti₧ pro prvek
WebBrowser a pro objekt InternetExplorer, pouze dole je u ka₧dΘho tΘmatu
napsßno, zda je to pro WebBrowser, InternetExplorer, nebo pro oba.
Zp∞t na obsah
16.3 Inet
Prvek Inet poskytuje p°ipojenφ po sφti pomocφ protokol∙ FTP, HTTP a HTTPS. Pomocφ FTP umo₧≥uje
p°ipojenφ k FTP serveru a na n∞m provßd∞nφ zßkladnφch FTP p°φkaz∙ (stßhnutφ nebo ulo₧enφ souboru atd.).
Pomocφ HTTP a HTTPS umo₧≥uje p°ipojenφ k WWW serveru a stßhnutφ n∞jakΘho dokumentu. Ukß₧eme si oba dva p°φpady.
Do projektu jej za°adφte zatr₧enφm polo₧ky Microsoft Internet Transfer Control v dialogu Components
z menu Project -> Components.
Synchronnφ a asynchronnφ p°enos
Prvek Inet umo₧≥uje p°enos soubor∙ synchronn∞ i asynchronn∞. Synchronnφ p°enos
se provßdφ metodou OpenURL . Jako parametr jφ zadßte soubor, kter² chcete stßhnout a metoda vßm
vrßtφ po₧adovanß data (pomocφ druhΘho parametru urΦujete typ stahovan²ch dat). Tzn. dokud nejsou data
vrßcena, program dßle nepokraΦuje.
Zobrazenφ strßnky www.seznam.cz (HTML k≤d).
Text1.Text = Inet1.OpenURL("http://www.seznam.cz")
Zobrazenφ textovΘho souboru z FTP serveru.
Text1.Text = Inet.OpenURL("ftp://ftp.seznam.cz/soubor.txt")
Ulo₧enφ binßrnφho souboru na lokßlnφ disk.
Dim b() As Byte, iFile As Integer
b() = Inet1.OpenURL("ftp://195.113.105.136/listek.doc", icByteArray)
iFile = FreeFile
Open "C:\listek.doc" For Binary As #iFile
Put #iFile, , b()
Close #iFile
Asynchronnφ p°enos funguje trochu jinak. Pomocφ metody
Execute zadßte, co chcete provßd∞t, nap°. FTP p°φkaz, p°iΦem₧ program
pokraΦuje dßle (seznam podporovan²ch FTP a HTTP p°φkaz∙ vΦetn∞ jejich popisu najdete v MSDN).
P°i zaslßnφ vÜech dat po₧adovan²ch metodou Execute
je vyvolßna udßlost StateChanged , ve kterΘ p°ijatß data zpracujete.
Zobrazenφ seznamu soubor∙ ko°enovΘho adresß°e serveru ftp.seznam.cz.
Private Sub Command1_Click()
Inet1.Execute "ftp://ftp.seznam.cz", "DIR"
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant
Select Case State
Case icResponseCompleted
vtData = Inet1.GetChunk(1024, icString)
Do While LenB(vtData) > 0
Text1.Text = Text1.Text & vtData
vtData = Inet1.GetChunk(1024, icString)
Loop
End Select
End Sub
Pomocφ Execute je spuÜt∞n FTP p°φkaz DIR. V udßlosti StateChanged je nejd°φve
otestovßno, zda jde o zprßvu, na kterou Φekßme (icResponseCompleted ), proto₧e prvek se nachßzφ
b∞hem komunikace v r∙zn²ch stavech a o vÜech informuje tato udßlost. VÜechna data jsou ve vyrovnßvacφ pam∞ti,
pomocφ metody GetChunk je mo₧nΘ je zφskat. Op∞t mßte mo₧nost urΦit, o jakß data se jednß, mo₧nosti
jsou icString a icByteArray .
Ulo₧enφ souboru na FTP server nebo stßhnutφ souboru z FTP serveru na lokßlnφ poΦφtaΦ je jednoduÜÜφ.
'Ulo₧φ soubor z lokßlnφho PC na FTP server
Inet1.Execute "ftp://ftp.seznam.cz", "PUT C:\soubor.txt soubor.txt"
'Ulo₧φ soubor z FTP serveru na lokßlnφ PC
Inet1.Execute "ftp://ftp.seznam.cz", "GET soubor.txt C:\soubor.txt"
Nastavenφ p°ipojenφ
Prvek umo₧≥uje spoustu r∙zn²ch kombinacφ p°ipojenφ. Jedno z mo₧n²ch nastavenφ je protokol. Nastavuje
se vlastnostφ Protocol . Dφky tomu, ₧e prvek umo₧≥uje p°ipojenφ p°es FTP
nebo HTTP se sna₧φ sßm rozeznat, kter² protokol hodlßte pou₧φt. NejlΘpÜφ je vÜak nespolΘhat se na
takovΘ vlastnosti a nastavit si rad∞ji vÜe sßm. Jedna mo₧nost je pou₧itφ tΘto vlastnosti
a druhß zadßnφ nßzvu protokolu p°φmo do URL adresy tak, jak jsme to ji₧ pou₧ili ve v²Üe uveden²ch p°φkladech.
'FTP protokol
Inet1.Protocol = icFTP
'HTTP protokol
Inet1.Protocol = icHTTP
DalÜφ mo₧nostφ je typ p°ipojenφ. Vlastnost, kterß se o n∞j starß, je AccessType .
Vybrat si m∙₧ete bu∩ p°φmΘ p°ipojenφ (icDirect ) nebo p°ipojenφ p°es proxy server
(icNamedProxy ). V p°φpad∞, ₧e se chcete p°ipojit p°es proxy server, musφte takΘ zadat
jeho nßzev do vlastnosti Proxy . Existuje jeÜt∞ t°etφ mo₧nost, icUseDefault ,
kterß je ve v∞tÜin∞ p°φpad∙ nejv²hodn∞jÜφ. Zjistφ nastavenφ existujφcφho p°ipojenφ z registru a
podle toho se pak sna₧φ p°ipojit.
'proxy server
Inet1.AccessType = icNamedProxy
Inet1.Proxy = "NasHlavniProxyServer"
'p°φmΘ p°ipojenφ
Inet1.AccessType = icDirect
Spousta server∙ (nebo spφÜe v∞tÜina) umo₧≥uje anonymnφ p°ipojenφ. To provßdφ prvek automaticky. Chcete-li
se vÜak p°ihlßsit pod jin²m ·Φtem, musφte zadat takΘ u₧ivatelskΘ jmΘno a heslo. Jak jinak
ne₧ vlastnostmi UserName a Password . V tomto p°φpad∞ vÜak
nem∙₧ete zadßvat URL adresu a₧ metod∞ Execute , ale musφte ji zadat do vlastnosti URL .
Pokud byste ji zadali p°φmo do Execute , p°ihlßsil by vßs prvek jako anonymous.
Upravφme-li k≤d na zobrazenφ soubor∙ adresß°e FTP serveru (pouze prvnφ proceduru)
na p°ihlßÜenφ pod u₧ivatelsk²m jmΘnem a heslem, m∞la by vypadat takto:
Private Sub Command1_Click()
Inet1.Protocol = icFTP
Inet1.URL = "ftp.seznam.cz"
Inet1.UserName = "test"
Inet1.Password = "heslo"
Inet1.Execute , "DIR"
End Sub
Zp∞t na obsah
|