URLDownloadToFile: Download mit VB6

Mit folgender Funktion lassen sich Dateien aus dem Internet herunterladen:

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
  
  
  Sub Main()
  Dim sLocalFile As String
 
' URL-Link der Datei, die heruntergeladen werden soll
sURL = "http://www.tools4vb.de/download/sevTrayIcon.jpg"
 
' Dateiname auf dem lokalen System
sLocalFile = "C:\Eigene Dateien\sevTrayIcon.jpg"
 
' Download ausführen

lResult = URLDownloadToFile(0, sURL, sLocalFile, 0, 0)

 
' Rückgabewert auswerten
If lResult = 0 Then
  MsgBox "Download erfolgreich ausgeführt!"
Else
  MsgBox "Fehler beim Download: " & _
   "Entweder existiert die URL nicht, oder Sie haben " & _
   "einen ungültigen Dateinamen angegeben!", vbCritical
End If
  End Sub

Um zu vermeiden, dass beim Download aufgrund des Caches eine alte Version der Datei heruntergeladen wird, kann man diese Funktion nutzen:

Private Function GetRandomNum(Min As Long, Max As Long) As Long
    Randomize
    GetRandomNum = Int(Rnd * (Max - Min + 1) + Min)
End Function

Mit der Funktion können wir die URL “anders aussehen lassen” sodass immer die aktuellste Datei heruntergeladen wird:

r = GetRandomNum(1, 10000)
sURL = "http://www.tools4vb.de/download/sevTrayIcon.zip" & "&r=" & r