Hallo Ralf
Am Sat, 15 Aug 2009 04:28:18 +0200 schrieb Ralf . K u s m i e r z:
Du hast meine Frage trotzdem noch nicht beantwortet!
Mit VBA kannst du nämlich auch die API-Funktionen der wininet.dll direkt benutzen. Ist lediglich etwas mehr Aufwand. Hier ein abgespecktes Beispiel:
Option Explicit Private Declare Function InternetOpenUrl _ Lib "wininet" Alias "InternetOpenUrlA" ( _ ByVal hInternetSession As Long, _ ByVal lpszUrl As String, _ ByVal lpszHeaders As String, _ ByVal dwHeadersLength As Long, _ ByVal dwFlags As Long, _ ByVal dwContext As Long _ ) As Long Private Declare Function InternetOpen _ Lib "wininet.dll" Alias "InternetOpenA" ( _ ByVal sAgent As String, _ ByVal lAccessType As Long, _ ByVal sProxyName As String, _ ByVal sProxyBypass As String, _ ByVal lFlags As Long _ ) As Long Private Declare Function InternetCloseHandle _ Lib "wininet" ( _ ByRef hInet As Long _ ) As Long Private Declare Function InternetReadFile _ Lib "wininet" ( _ ByVal hFile As Long, _ ByVal sBuffer As String, _ ByVal lNumBytesToRead As Long, _ lNumberOfBytesRead As Long _ ) As Integer
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000 Private Const INTERNET_OPEN_TYPE_DIRECT As Long = 1 Private mlngNetOpen As Long Sub test() Dim lngFF As Long Dim strDest As String Dim strSource As String Dim strData As String Dim i As Long strDest = "c:\Test\map2008_" strSource = _ "
Public Function UrlRead(strSource As String) As String Dim lngInetFile As Long Dim lngNetOpen As Long Dim strInetDummy As String Dim lngInetBytesCount As Long Dim lngInetBytesWant As Long ' Internetverbindung herstellen. Direkt, ohne Proxy. lngNetOpen = InternetOpen("Agent", _ INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) ' Handle zur URL holen lngInetFile = InternetOpenUrl(lngNetOpen, strSource, _ vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&) If lngInetFile 0 Then ' Zugriff auf URL möglich Do ' Buffer erzeugen lngInetBytesWant = lngInetBytesWant + 30000 strInetDummy = String(lngInetBytesWant, 0) ' Daten holen InternetReadFile lngInetFile, strInetDummy, _ lngInetBytesWant, lngInetBytesCount If lngInetBytesWant