文書番号: 262110 - 最終更新日: 2011年7月25日 - リビジョン: 5.0

アプリケーションで WebBrowser コントロールをホストしている場合は、キャッシュをクリアするには、方法

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。
すべて展開する | すべて折りたたむ

概要

アプリケーションで WebBrowser コントロールをホストする場合があります。プログラムによって、キャッシュをクリアする必要があります。この機能は利用できません。WebBrowser コントロールのインターフェイスを通じてです。この資料で説明する方法WinInet API 関数を使用して直接キャッシュを消去します。

詳細

WinInet API の FindFirstURLCacheEntry を使用して、最初の検索エントリをキャッシュし、FindNextUrlCacheEntry を使用して、キャッシュを列挙します。使用各エントリを削除するのには DeleteUrlCacheEntry。

注意してください。FindFirstUrlCacheGroup、FindNextUrlCacheGroup、および DeleteUrlCacheGroup を使用します。次の例ではします。これらの API 関数のみにで利用可能なInternet Explorer 5 でようにをチェックするために適切なを防ぐために必要です。エラーが発生。

次の手順での WinInet API を使用する方法を示しますVisual Basic のキャッシュ内のすべてのファイルをオフにします。

  1. Visual Basic の標準 EXE プロジェクトを新規作成します。
  2. [Form1 のコマンド ボタンを作成します。
  3. 次のコードを form1 のモジュールに貼り付けます。
    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 
    					
  4. プロジェクトを実行し、クリックしてください、 Command1.コンピューターのキャッシュがクリアされます。

関連情報

詳細については、WinInet の構文関数のキャッシュは、次のマイクロソフトの MSDN オンライン Web ワーク ショップ サイトを参照してください。
永続的な URL のキャッシュ機能 (http://msdn2.microsoft.com/en-us/library/ms903369.aspx)
詳細については詳細については、マイクロソフトのインターネットの Web ベース ソリューションの開発エクスプ ローラーで、次のマイクロソフト Web サイトを参照してください。
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

http://support.microsoft.com/iep (http://support.microsoft.com/iep)
キーワード:?
kbcaching kbhowto kbsbnworkshop kbwebbrowser kbmt KB262110 KbMtja
機械翻訳機械翻訳
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:262110? (http://support.microsoft.com/kb/262110/en-us/ )
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
Retired KB Articleサポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。