65.9K
CodeProject 正在变化。 阅读更多。
Home

在 VB 中读取缓存

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.75/5 (4投票s)

2003年12月22日

CPOL
viewsIcon

59157

downloadIcon

675

演示使用 WinInet 方法读取缓存的 URL 文件

引言

这种简单的方法使用 Wininet DLL 来读取缓存文件。演示程序使用类对象。

此算法需要使用 InternetOpen 函数来初始化 DLL 以从缓存中读取。INTERNET_FLAG_FROM_CACHE 设置强制在对 InternetOpenURL 的调用中,使用设置了 URL 的方式重新下载请求的文件。它读取文件并返回它。它关闭所有句柄。

Private Const INTERNET_OPEN_TYPE_DIRECT = &H1
Private Const INTERNET_FLAG_FROM_CACHE = &H40

Public Function ReadCacheFile(url As String) As String
 

  Dim l&, Buffer$, hOpen&, hFile&, Result&
   
    l = 32768
    Buffer = Space(l)
    
    DoEvents
    
    hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_DIRECT, _
                         vbNullString, vbNullString, INTERNET_FLAG_FROM_CACHE)


  
    hFile = InternetOpenUrl(hOpen, url, vbNullString, _
                            ByVal 0&, &0, _
                            ByVal 0&)
                            
    Call InternetReadFile(hFile, Buffer, l, Result&)
    Call InternetCloseHandle(hFile)
    Call InternetCloseHandle(hOpen)
    
    ReadCacheFile = Left$(StrConv(Buffer, vbUnicode), Result&)
    
End Function

此行对于获取未过滤的数据(例如获取 Applet)非常有用。

ReadCacheFile = Left$(StrConv(Buffer, vbUnicode), Result&)

对于 Applet 来说,转换为 UNICODE 后有效,不转换则无效。

历史

  • 2003年12月21日:初始发布
© . All rights reserved.