如何清除应用程序承载 WebBrowser 控件时缓存
2014-06-14 13:35
411 查看
原文:如何清除应用程序承载 WebBrowser 控件时缓存http://support.microsoft.com/kb/262110/zh-cn
察看本文应用于的产品
function loadTOCNode(){}
注意:这篇文章是由无人工介入的自动的机器翻译系统翻译完成。这些文章是微软为不懂英语的用户提供的, 以使他们能够理解这些文章的内容。微软不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的使用所引起的任何直接的, 或间接的可能的问题负责。
当应用程序承载 WebBrowser 控件, 可能需要以编程方式清除缓存。 通过 WebBrowser 控件的接口没有此功能。 本文解释如何使用 WinInet API 函数以直接清除缓存。
回到顶端
使用 WinInet API FindFirstURLCacheEntry 来找到第一缓存条目和 FindNextUrlCacheEntry 用于列举缓存。 使用 DeleteUrlCacheEntry 来删除每个条目。
注意 FindFirstUrlCacheGroup DeleteUrlCacheGroup FindNextUrlCacheGroup, 以及正在使用下例中。 这些 API 函数以便正确检查作为显示需要防止错误有只成为用 Internet Explorer 5。
在下面步骤介绍如何在 VisualBasic 中使用 WinInet API 来清除缓存中所有文件。
察看本文应用于的产品
function loadTOCNode(){}
注意:这篇文章是由无人工介入的自动的机器翻译系统翻译完成。这些文章是微软为不懂英语的用户提供的, 以使他们能够理解这些文章的内容。微软不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的使用所引起的任何直接的, 或间接的可能的问题负责。
文章编号 | : | 262110 |
最后修改 | : | 2007年3月29日 |
修订 | : | 3.1 |
概要
loadTOCNode(1, 'summary');当应用程序承载 WebBrowser 控件, 可能需要以编程方式清除缓存。 通过 WebBrowser 控件的接口没有此功能。 本文解释如何使用 WinInet API 函数以直接清除缓存。
回到顶端
更多信息
loadTOCNode(1, 'moreinformation');使用 WinInet API FindFirstURLCacheEntry 来找到第一缓存条目和 FindNextUrlCacheEntry 用于列举缓存。 使用 DeleteUrlCacheEntry 来删除每个条目。
注意 FindFirstUrlCacheGroup DeleteUrlCacheGroup FindNextUrlCacheGroup, 以及正在使用下例中。 这些 API 函数以便正确检查作为显示需要防止错误有只成为用 Internet Explorer 5。
在下面步骤介绍如何在 VisualBasic 中使用 WinInet API 来清除缓存中所有文件。
1. | 新建一个 VisualBasic 标准 EXE 项目。 |
2. | 创建 form 1 下一个命令按钮。 |
3. | 以下代码粘贴到模块是 form 1:[code]Option Explicit Private Declare Function FindFirstUrlCacheGroup Lib "wininet.dll" ( _ ByVal dwFlags As Long, _ ByVal dwFilter As Long, _ ByRef lpSearchCondition As Long, _ ByVal dwSearchCondition As Long, _ ByRef lpGroupId As Date, _ ByRef lpReserved As Long) As Long Private Declare Function FindNextUrlCacheGroup Lib "wininet.dll" ( _ ByVal hFind As Long, _ ByRef lpGroupId As Date, _ ByRef lpReserved As Long) As Long Private Declare Function DeleteUrlCacheGroup Lib "wininet.dll" ( _ ByVal sGroupID As Date, _ ByVal dwFlags As Long, _ ByRef lpReserved As Long) As Long Private Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" ( _ ByVal lpszUrlSearchPattern As String, _ ByRef lpFirstCacheEntryInfo As INTERNET_CACHE_ENTRY_INFO, _ ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long Private Type INTERNET_CACHE_ENTRY_INFO dwStructSize As Long szRestOfData(1024) As Long End Type Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" ( _ ByVal lpszUrlName As Long) As Long Private Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" ( _ ByVal hEnumHandle As Long, _ ByRef lpNextCacheEntryInfo As INTERNET_CACHE_ENTRY_INFO, _ ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long Private Const CACHGROUP_SEARCH_ALL = &H0 Private Const ERROR_NO_MORE_FILES = 18 Private Const ERROR_NO_MORE_ITEMS = 259 Private Const CACHEGROUP_FLAG_FLUSHURL_ONDELETE = &H2 Private Const BUFFERSIZE = 2048 Private Sub Command1_Click() Dim sGroupID As Date Dim hGroup As Long Dim hFile As Long Dim sEntryInfo As INTERNET_CACHE_ENTRY_INFO Dim iSize As Long On Error Resume Next ' Delete the groups hGroup = FindFirstUrlCacheGroup(0, 0, 0, 0, sGroupID, 0) ' To avoid error using it with IE4 as FindFirstUrlCacheGroup is not implemented If Err.Number <> 453 Then If (hGroup = 0) And (Err.LastDllError <> 2) Then MsgBox "An error occurred enumerating the cache groups" & Err.LastDllError Exit Sub End If Else Err.Clear End If If (hGroup <> 0) Then 'we succeeded in finding the first cache group.. enumerate and 'delete Do If (0 = DeleteUrlCacheGroup(sGroupID, CACHEGROUP_FLAG_FLUSHURL_ONDELETE, 0)) Then ' To avoid error using it with IE4 as FindFirstUrlCacheGroup is not implemented If Err.Number <> 453 Then MsgBox "Error deleting cache group " & Err.LastDllError Exit Sub Else Err.Clear End If End If iSize = BUFFERSIZE If (0 = FindNextUrlCacheGroup(hGroup, sGroupID, iSize)) And (Err.LastDllError <> 2) Then MsgBox "Error finding next url cache group! - " & Err.LastDllError End If Loop Until Err.LastDllError = 2 End If ' Delete the files sEntryInfo.dwStructSize = 80 iSize = BUFFERSIZE hFile = FindFirstUrlCacheEntry(0, sEntryInfo, iSize) If (hFile = 0) Then If (Err.LastDllError = ERROR_NO_MORE_ITEMS) Then GoTo done End If MsgBox "ERROR: FindFirstUrlCacheEntry - " & Err.LastDllError Exit Sub End If Do If (0 = DeleteUrlCacheEntry(sEntryInfo.szRestOfData(0))) _ And (Err.LastDllError <> 2) Then Err.Clear End If iSize = BUFFERSIZE If (0 = FindNextUrlCacheEntry(hFile, sEntryInfo, iSize)) And (Err.LastDllError <> ERROR_NO_MORE_ITEMS) Then MsgBox "Error: Unable to find the next cache entry - " & Err.LastDllError Exit Sub End If Loop Until Err.LastDllError = ERROR_NO_MORE_ITEMS done: MsgBox "cache cleared" Command1.Enabled = True End Sub [/code] |
4. | 运行项目并单击 Command 。 计算机中缓存将被清除。 |
相关文章推荐
- 如何清除应用程序承载 WebBrowser 控件时缓存
- 通过WebBrowser 控件承载的网页与包含控件的应用程序之间的通信
- C#.NET:清除WebBrowser控件缓存文件
- VBA 清除 IE 缓存 - WebBrowser控件开发者必杀技!
- C#中的WebBrowser控件,如何做到点击页面中的链接保持在应用程序内打开而不是用IE打开
- asp.net textbox 控件如何清除缓存
- 如何清除正式环境中的缓存
- 如何在WebBrowser1控件直接显示memo1里面的代码
- 如何清除ARP缓存,达到计算机名与IP的同步
- 急!有谁知道如何截获WebBrowser控件的 ie脚本错误提示 吗?
- 『转MSDN』如何:在 Windows 窗体 DataGridView 单元格中承载日历控件
- 如何利用 WebBrowser 控件,显示 .GIF 动画?
- 如何在 Internet Explorer 中以编程方式更改 Internet Explorer 和 WebBrowser 控件的打印设置
- 如何清除web 服务器的缓存
- visual studio 2008 sp1中如何让WebBrowser控件可编辑
- webBrowser控件(给WEB应用程序加个壳)的使用及源码下载
- 浏览器集成教学 在你的应用程序中集成WebBrowser控件
- 如何在XP中对应用程序使用当前主题的控件?
- WebBrowser 控件应用程序在 WindowsXP 中, 在 Windows Server 2003, 或 WindowsVista 中 Msctf.dll 组件中发生内存泄漏 解决方法
- 如何确定WebBrowser 控件中的页面加载完成