Bir dosyayı nasıl indireceğinizi (bir web sayfasını açmadan) ve Visual Basic 6.0'daki bir dizine kaydetmeyi bilen var mı?Download Dosyası - VB6
cevap
Yalnızca kodla (Internet Aktarım Denetimi yok) yapmak istiyorsanız, VBNet.mvps.org URLDownloadToFile API çağrısı kullanan gerçekten iyi bir makaleye sahiptir. Makale
:URLDownloadToFile API (Win3, WinNT3.x hariç), Windows işletim sisteminin tüm sürümlerinde mevcuttur. Uzak dosya adı ve yerel dosya yolu ve adı, geçirerek API, belirtilen dosyanın bitlerini hedef adı olarak kaydederek indirir. fonksiyon tüm dosya türleri ile çalışır -, düz metin, resim, html, mpg, wav ve zip dosyaları vb dosya için rutin veya endişe değiştirilmeden indiriliyor ne de görünürde herhangi boyut kısıtlama yoktur ya sınırlama.
Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000
Public Function DownloadFile(sSourceUrl As String, _
sLocalFile As String) As Boolean
//'Download the file. BINDF_GETNEWESTVERSION forces
//'the API to download from the specified source.
//'Passing 0& as dwReserved causes the locally-cached
//'copy to be downloaded, if available. If the API
//'returns ERROR_SUCCESS (0), DownloadFile returns True.
DownloadFile = URLDownloadToFile(0&, _
sSourceUrl, _
sLocalFile, _
BINDF_GETNEWESTVERSION, _
0&) = ERROR_SUCCESS
End Function
Bilginize - Windows 7 üzerinde test, sadece önbelleğe alınmış sürümünü dönecekti, bu yüzden önce onu temizlemek için makalede belirtilen ekstra işlevi kullanmak zorunda kaldı (ve bu çalıştı).
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
Alias "DeleteUrlCacheEntryA" _
(ByVal lpszUrlName As String) As Long
Sonra sadece önbelleği temizlemek için, ilk hedef URL'ye sahip yukarıdaki işlevini çağırın.
** API çağrılarına ihtiyacınız yok **, İnternet Aktarımı denetimine ** gerek yok. Sadece yerel VB6 kodunu kullanarak kolay yolu yapın. http://visualstudiomagazine.com/articles/2008/03/27/simple-asynchronous-downloads.aspx – MarkJ
+1, beni bu API çağrılarına tanıttığınız için çok teşekkürler. –
Ben Sen, internet Transferi kontrolünü kullanmak bir örnek için http://www.vb-helper.com/howto_get_file_from_web.html görmek gerek Internet Transfer Control
kullanarak öneririm. Kimlik bilgilerini belirtmeniz gerekiyorsa, http://support.microsoft.com/kb/173264'u da kontrol edin.
Internet Aktarım Denetimi'ni beğenmedim çünkü eşzamanlı. Bir indirme işlemini başlattığınızda, dosya indirilinceye veya bir hata atılana kadar uygulamanıza yanıt vermiyor. Eşzamansız yöntemler yazmak için WININET DLL kullanmanın iyi örnekleri vardır. Bu önemsiz değil, aynı zamanda çok yapılabilir. Here, yığın akışından bir örnektir.
** **, VB6'da eşzamansız indirme yapmak için önemsizdir ve API çağrıları gerektirmez. Yanıtıma bakın http://stackoverflow.com/questions/1976152/download-file-vb6/1979417#1979417 – MarkJ
API çağrılarına ihtiyacınız yoktur, İnternet Aktarım denetimine ihtiyacınız yoktur. Sadece yerel VB6 kodunu kullanarak kolay yolu yapın. İşte örnek kod ile mükemmel bir article by Karl Peterson.
Daha önce hiç görmediğim bir şey vardı. WININET kütüphanesini kullanarak tam bir sınıfa sahibim, eğer bunu tekrar VB'de yapmam gerekirse, muhtemelen bununla başa çıkacağım, ama alternatiflere sahip olmak her zaman iyidir. – jac
Internet Explorer'ın çevrimdışı mülkü doğruysa, bu işe yaramaz. Bir dosya bulunamadı hatası alırsınız. – kjack
Bu deneyin:
Örnek:
My.Computer.Network.DownloadFile _
("http://www.cohowinery.com/downloads/WineList.txt", _
"C:\Documents and Settings\All Users\Documents\WineList.txt")
Bu VB.NET gibi görünüyor, soru VB6 –
bu
Sub DownloadFile(url, path)
Dim objReq
Dim objStream
Set objReq = CreateObject("MSXML2.XMLHTTP")
objReq.Open "GET", url, False
objReq.send
If objReq.Status = 200 Then
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.Write objReq.ResponseBody
objStream.Position = 0
objStream.SaveToFile path, 2
objStream.Close
Set objStream = Nothing
End If
Set objReq = Nothing
End Sub
deneyin
My.Computer.Network.DownloadFile (*File to download*, *What to save it as*)
Gün içinde bir çok olarak kaydedin ne bir dosya adı vermelidir
daha fazla bilgi için bkz. http://smartreferences.blogspot.in
hakkındadır Neden bu cevapta bir puan olduğunu bilmiyorum. Gerçekten inet kontrolsüz çalışan tek cevap bu. Yardım için teşekkürler. –
- 1. force download dosyası ile laravel
- 2. VB6 proje EXE dosyası çalıştırılamıyor
- 3. VB6
- 4. VB6-uygulama başlatılırken VB6'da günlük dosyası oluşturma
- 5. 'DAO350.dll dosyası bulunamıyor' dosya hatası VB6
- 6. Open Download Dialog with PHP
- 7. force download ac
- 8. Download Image UWP (C#)
- 9. Download url chrome uzantisi
- 10. jslint.js download link
- 11. force download ZF2 kullanarak
- 12. VB6 özniteliği VB6 Öznitelik Öğe.VB_UserMemId = 0
- 13. VB6 hafta
- 14. Download png/jpg with R
- 15. VB.NET'teki Array() eşdeğeri? VB6
- 16. .NET'te VB6 kodunu ayrıştırma
- 17. VB6 modülünü VB.NET'e dönüştürme
- 18. VB6'yı VB'ye Dönüştürme
- 19. VB6 Implements & events
- 20. RS232c VB6 yardım
- 21. Ben VB6 Konsol App
- 22. Tarih onayı VB6
- 23. VB6 MSBuild ile tümleştirme
- 24. PHP download özgürlüğü Chrome'da HTTP RANGE çalışmıyor
- 25. Alamofire download progress totalBytesExpectedToRead her zaman -1
- 26. iTunes bağlantısında Download dSYM seçeneği yok
- 27. uglifier gem yükleme hatası/download node.js?
- 28. iPhone için mobil site için Force download
- 29. Java: download Google'dan Konuşma Yapın Google Translate
- 30. MongoDB Download Windows 10 64 bit
** Ve 81 Qs sadece 4 oy ile ??? ** –
Yazıcınıza imza eklemeniz gerekmez - kullanıcı kartınız otomatik olarak eklenir. Daha fazla bilgi için [SSS] sayfasını okuyun (http://stackoverflow.com/faq#signatures). – Artemix