- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- OLED TV topic
- Biztosan lesz Xiaomi Pad 8
- Milyen videókártyát?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Asztrofotózás
- Gaming notebook topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
Új hozzászólás Aktív témák
-
válasz
martonx #1522 üzenetére
Lényeg, hogy működik.
Köszönöm a segítséget, sokat jelentettLenne még egy kérdésem.
A program rendesen működik, ha olyan tartalmat töltök le amihez nem kell bejelentkezni az oldalra. Ha olyan mappát nyitok meg amihez be kell jelentkezni, akkor ugye azt csak a bejelentkezés után tehetem meg. Ezzel nincs is semmi gond, teljesen ugyan olyan felületű oldalra visz, még a gombok inputjai sem változnak, viszont időtúllépéssel dob egy hibát.
Ha csak a webbrowser ablakba töltöm le akkor simán letölti, de ha ráengedném a "ciklust" akkor dobja a hibát. Valami ötlet erre? -
válasz
martonx #1518 üzenetére
Köszönöm a segítséget, ez nagyon korrekt válasz volt.
Ezt a verziót választottam:
Dim mettől As Integer = TextBox4.Text
Dim meddig As Integer = TextBox2.Text
Dim i As Integer
Dim a As String
For i = mettől To meddig
a = i
Dim link As String = WebBrowser1.Document.GetElementById("save").GetAttribute("href")
TextBox1.Text = ("https://familysearch.org" + link)
Dim sourceURL = TextBox1.Text
Dim filedir = ("C:\" + a + ".jpg")
WebBrowser1.Document.GetElementById("next").InvokeMember("click")
My.Computer.Network.DownloadFile(sourceURL, filedir)
NextDe nem várja meg, hogy letöltsön a kép, és már megy is tovább a for ciklus.
-
martonx
veterán
válasz
Des1gnR #1517 üzenetére
Webclient-tel kétféleképpen tudsz letölteni. Aszinkron módon, azaz elindul a letöltés, de a kódod fut tovább, nem várja meg, hogy mi lett a letöltés eredménye. Ez a DownloadFileAsync.
Vagy szinkron módon, azaz elindul a letöltés, a kód megvárja míg letöltődik, és csak ezután fut tovább. Ez a sima DownloadFile.
Remélem érthető a különbség.
Emellett a létező legegyszerűbb letöltési lehetőség a My.Computer.Network.DownloadFile használata.
Sőt letölteni lehet a webhttprequest-tel is. A lehetőségek tárháza szinte végtelen.
Esetedben javaslom a szinkron letöltést, mert így a legegyszerűbb sorba mindent letölteni, és ha jól értem nem több száz megás cuccokat töltesz le.
De ha már aszinkron, azért nem működik a DownloadProgressChanged eseményed, mert ehhez a WebClient-edhez előbb hozzá kell kapcsolnod ezt az eseményt. Ezt az AddHandlerrel tudod megtenni. -
válasz
martonx #1516 üzenetére
Ezt a szinkron-aszinkron dolgot nem teljesen értem.
Erről az oldalról töltenék le: https://familysearch.org/pal:/MM9.3.1/TH-1951-20648-29594-35?cc=1452460&wc=12890478És itt a teljes forráskód:
Imports System.Net
Public Class Form1
Private WithEvents download As WebClient
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim download As New WebClient
download = New WebClient
Dim i As Integer
Dim a As String
'For i = 1 To 3
a = i
Dim link As String = WebBrowser1.Document.GetElementById("save").GetAttribute("href")
TextBox1.Text = ("https://familysearch.org" + link)
Dim sourceURL = TextBox1.Text
Dim filedir = ("C:\" + a + ".jpg")
ProgressBar1.Value = 0
ProgressBar1.Maximum = 100
Try
download.DownloadFileAsync(New Uri(sourceURL), (filedir))
Catch ex As Exception
MsgBox("Failed" + ErrorToString(), MsgBoxStyle.Critical)
End Try
WebBrowser1.Document.GetElementById("next").InvokeMember("click")
' Next
End Sub
Private Sub download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download.DownloadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub
End ClassEz még változni fog itt-ott annyiban, hogy lehessen mappát választani és lehessen megadni más url-t is, de most csak az a lényeg hogy működjön
-
válasz
Des1gnR #1514 üzenetére
Jah azt még jelezném, hogy ez nem akar működni:
Private Sub download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download.DownloadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub
Ezen kívül más megoldás lehetséges? -
Sziasztok!
Egy olyan programot készítek ami egy weboldalról tölt le egy képet, majd ugrik a következőre és letölti azt is és így tovább
Így néz ki a kódrész ami a fájlt letölti:
Try
download.DownloadFileAsync(New Uri(sourceURL), (filedir))
Catch ex As Exception
MsgBox("Failed" + ErrorToString(), MsgBoxStyle.Critical)
End TryAzt szeretném megcsinálni, hogy csak akkor ugorjon át a következő képre, ha már letöltötte az aktuálisat. Mivel vizsgáljam ezt?
Válaszotokat előre is köszönöm.
Új hozzászólás Aktív témák
- Nyíregyháza és környéke adok-veszek-beszélgetek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Apple Watch Sport - ez is csak egy okosóra
- Villanyszerelés
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Sorozatok
- OLED TV topic
- Biztosan lesz Xiaomi Pad 8
- One otthoni szolgáltatások (TV, internet, telefon)
- BestBuy topik
- További aktív témák...
- HP EliteBook 450 Gen8 Intel Core i5-1135G7 (11.Generáció)
- HP ZBook Firefly 16 G19 Profi Tervező Vágó Laptop -50% i7-1255U 32/512 FHD+ Nvidia T550 4GB
- Nintendo Switch 2
- Native Instruments Kontrol S49 MK3
- ELADÓ i5 14600KF + RTX5070 + 32Gb DDR4 + 600W Platinum + Wifi + SOK GARI + AKÁR HÁZHOZSZÁLLÍTÁS IS!
- Apple iPhone 14 Pro 256 GB Space Black 1 év Garancia Beszámítás Házhozszállítás
- Xbox Elite Series 2 Kontroller AKCIÓ!!! // Számla + garancia //
- Lenovo ThinkPad X13 G2 multitouch (minimálisan használt)
- BESZÁMÍTÁS! Asus TUF A620M R7 7700 64GB DDR5 500GB SSD RX 6800 XT 16GB ZALMAN I3 NEO Seasonic 750W
- GYÖNYÖRŰ iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3434
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest