VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 インターネット関係のメニュー
1.VB6.0でハイパーリンクを作成するには
2.指定のURLのHTMLファイルをダウンロードする
3.HTMLファイルの内容をテキスト形式及びHTML形式で取得して表示
4.インターネット一時ファイルを削除する
5.InternetExplorer を使っての HTM ファイル内の要素を取得・操作例
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.


4.インターネット一時ファイルを削除する
1.インターネット一時ファイルを削除する
2.
3. 
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:
使用 API:DeleteUrlCacheEntry FormatMessage 

その他 :このサンプルは、 Win32 APIを使用しておりますので、ある程度Win32 API が理解できる方がお使い下さい。
    :
このページのトップへ移動します。 1.インターネット一時ファイルを削除する

Option Explicit   'SampleNo=245  2003.02.02

'ファイルが存在した場合にキャッシュから関連したファイルを削除する
Private Declare Function DeleteUrlCacheEntry Lib "wininet" _
  Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
'メッセージ文字列を指定の書式で取得する(741)
'http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_formatmessage.htm
Private Declare Function FormatMessage Lib "KERNEL32" _
  Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, _
  ByVal dwMessageId As Long, ByVal dwLanguageId As Long, _
  ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
'システムメッセージリソースを検索する(741)
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Private Sub Command1_Click()
'キャッシュを削除するファイルのURLを取得
  Call DeleteCache(Text1.Text)
End Sub

Private Sub DeleteCache(DelCacheUrl As String)
  Dim lngResult As Long
  '指定のファイルのキャッシュを削除
  lngResult = DeleteUrlCacheEntry(DelCacheUrl)
  '結果を表示
  If lngResult = 0 Then
    Call sGetErrMsg
  Else
    MsgBox "指定のファイルのキャッシュを削除しました"
  End If
End Sub

Private Sub sGetErrMsg()
'最後にDLLを呼び出したときのエラーを取得(GetLastError)
  Dim lngResult As Long
  Dim ErrorCode As Long
  Dim ErrBuffer As String

  'エラーメッセージを受け取るバッファーを確保
  ErrBuffer = String$(256, vbNullChar)
  '最後にDLLを呼び出したときのエラーコードを取得
  ErrorCode = Err.LastDllError
  'エラーコードからエラーメッセージを取得する
  lngResult = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, _
      ByVal 0&, ErrorCode, 0&, ErrBuffer, Len(ErrBuffer), 0&)
  'バッファーからメッセージを取り出し
  ErrBuffer = Left$(ErrBuffer, InStr(ErrBuffer, vbNullChar) - 1)
  'エラーコードとエラーメッセージを表示
  MsgBox "エラーコード: " & ErrorCode & vbLf & ErrBuffer, _
              vbInformation, "GetLastError"
End Sub

2003/02/02 No.2542の投稿で色々調べていてDeleteUrlCacheEntry APIで削除できるようなので試して見たら簡単に削除でき問題もなさそうなので No.2546 で一応紹介していたのですが、サンプルを他のサイトで投稿されていたので後でサンプルを投稿するとパクリと思われるのもいやなのでテスト中ですがUPしておきます。別途掲示板のNo.380〜とNo.2542〜の一連の投稿も見ておいて下さい。

よく解りませんがこの関数は Microsoft Windows CE 3.0 用?のようですがWinXP・Win98 でも動作致しました。
このAPIはサンプルを見れば解るかと思うのですがCurrentUser内のTemporary Internet Files内及び以下の指定のURLの関連ファイルを削除します。
従って、ネットワーク環境や複数のユーザー環境でご使用の場合は十分テストしてからご使用下さい
尚、すべて削除する場合はFindFirstUrlCacheEntry や FindFirstUrlCacheEntry API等を使って列挙する必要があります。その場合、下記のURLが参考になるかと思います。
又、COOKIE だけ残して削除も出来るようです。

  http://www.mvps.org/vbnet/index.html?code/internet/deleteurlcache.htm

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
インターネット一時ファイルを削除する キャッシュファイルを削除 ブラウザーのキャッシュ(一時ファイル)を削除する



このページのトップへ移動します。