在 VB 中读取缓存
演示使用 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日:初始发布