用Inet下载能不能不用缓存啊?,我用inet下载的,郁闷死了,IE缓存占用高的惊人,能不能让它不用缓存的??请给出代码~
下面是我使用的代码:Option Explicit
Private Declare Function InternetOpen Lib "wininet" 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, sBuffer As Byte, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
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 HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" (ByVal hHttpRequest As Long, ByVal lInfoLevel As Long, ByVal sBuffer As Any, ByRef lBufferLength As Long, ByRef lIndex As Long) As Integer
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const scUserAgent = "Tgwang"
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_FLAG_RELOAD = &H80000000
Private mvarUrl As String
Private mvarSaveFile As String
Private mvarConnect As Boolean
Private hOpen As Long, hFile As Long
Private Buffer As String, BufLen As Long
Private RetQueryInfo As Boolean
Public Event GetData(Progress As Long)                     '下载进度
Public Event ErrMassage(Description As String)             '错误信息
Public Event DownLoadOver()
Public Sub Execute()    mvarConnect = True    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)    If mvarConnect = False Then
        Cancel
        Exit Sub
    End If    If hOpen = 0 Then
        Cancel
        RaiseEvent ErrMassage("无法创建连接")
        mvarConnect = False
    Else        hFile = InternetOpenUrl(hOpen, mvarUrl, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)        If mvarConnect = False Then
            Cancel
            Exit Sub
        End If        If hFile = 0 Then
            Cancel
            RaiseEvent ErrMassage("无法连接服务器")
            mvarConnect = False
        Else
            Buffer = Space$(1024)
            BufLen = 1024
            RetQueryInfo = HttpQueryInfo(hFile, 21, Buffer, BufLen, 0)            If RetQueryInfo Then
                Buffer = Mid$(Buffer, 1, BufLen)
            Else
                Buffer = ""
            End If        End If    End IfEnd Sub
Public Function StartDownLoad() As Boolean    Dim sBuffer(1 To 1024) As Byte, Ret As Long
    Dim intfile As Long, LBR As Long
    Dim i As Long
        
    
    If mvarConnect = False Then
        Cancel
        StartDownLoad = False
        Exit Function
    End If    On Error GoTo OutErr
    Err.Clear
    'If Dir$(mvarSaveFile) > " " Then
    '    Name mvarSaveFile As mvarSaveFile & ".bak"
    'End If
    intfile = FreeFile()
    
    Open mvarSaveFile For Binary Access Write As #intfile
    Do
        InternetReadFile hFile, sBuffer(1), 1024, Ret
        DoEvents
        If Ret = 1024 Then
            If mvarConnect = False Then
                StartDownLoad = False
                GoTo Quit
            End If            Put #1, , sBuffer
        Else
            For i = 1 To Ret
                Put #1, , sBuffer(i)
                DoEvents
            Next i
        End If
        LBR = LBR + Ret
        RaiseEvent GetData(LBR)
        DoEvents
    Loop Until Ret < 1024
    RaiseEvent DownLoadOver
Quit:
    Close #intfile
    'if Dir$(mvarSaveFile & ".bak") > " " Then
    '   Kill mvarSaveFile
    '  Name mvarSaveFile & ".bak" As mvarSaveFile
    'End If
    Cancel    Exit FunctionOutErr:
    Err.Clear
    Cancel
    Close #intfile
    RaiseEvent ErrMassage("文件" & mvarSaveFile & "正在使用,无法进行操作")
    On Error GoTo 0End FunctionPublic Sub Cancel()    mvarConnect = False
    InternetCloseHandle hOpen
    InternetCloseHandle hFileEnd SubPublic Property Let SaveFile(ByVal FileName As String)    mvarSaveFile = FileNameEnd PropertyPublic Property Let URL(ByVal URL As String)
    mvarUrl = URLEnd Property
Public Function GetHeader(Optional hdrName As String) As String    Dim tmp As Long
    Dim tmp2 As String    If mvarConnect = False Then
        GetHeader = "0"
        Cancel
        Exit Function
    End If
        
    
    
    If Buffer <> "" Then
        Select Case UCase$(hdrName)
            Case "CONTENT-LENGTH"
                tmp = InStr(Buffer, "Content-Length")
                tmp2 = Mid$(Buffer, tmp + 16, Len(Buffer))
                tmp = InStr(tmp2, Chr$(0))
                GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))
            Case "CONTENT-TYPE"
                tmp = InStr(Buffer, "Content-Type")
                tmp2 = Mid$(Buffer, tmp + 14, Len(Buffer))
                tmp = InStr(tmp2, Chr$(0))
                GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))
            Case "DATE"
                tmp = InStr(Buffer, "Date")
                tmp2 = Mid$(Buffer, tmp + 6, Len(Buffer))
                tmp = InStr(tmp2, Chr$(0))
                GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))
            Case "LAST-MODIFIED"
                tmp = InStr(Buffer, "Last-Modified")
                tmp2 = Mid$(Buffer, tmp + 15, Len(Buffer))
                tmp = InStr(tmp2, Chr$(0))
                GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))
            Case "SERVER"
                tmp = InStr(Buffer, "Server")
                tmp2 = Mid$(Buffer, tmp + 8, Len(Buffer))
                tmp = InStr(tmp2, Chr$(0))
                GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))
            Case vbNullString
                GetHeader = Buffer
            Case Else
                GetHeader = "0"
        End Select
    Else
        GetHeader = "0"
    End IfEnd Function