キャッシュされているはずのIEのアドレスバーにあるアイコンを取得する方法

解決


jikoryuu  2004-11-02 04:25:15  No: 86407

キャッシュされているはずのIEのアドレスバーにあるアイコンを取得する方法はどのようにすれば取得する事ができるでしょうか?

ShellIconCacshから取得できないかとか、インターネット一時ファイルから取得できるかなど、いろいろ調べたのですがどうしても解りません。

宜しくお願いします。


jikoryuu  2004-11-02 06:15:25  No: 86408

自己解決しました。

GetUrlCacheEntryInfoでインターネット一時ファイルのキャッシュされたアイコンファイル名(favicon.ico)を取得できることが解りました。

Private Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type
Private Type INTERNET_CACHE_ENTRY_INFO
  dwStructSize As Long
  lpszSourceUrlName As Long
  lpszLocalFileName As Long
  CacheEntryType  As Long
  dwUseCount As Long
  dwHitRate As Long
  dwSizeLow As Long
  dwSizeHigh As Long
  LastModifiedTime As Currency
  ExpireTime As Currency
  LastAccessTime As Currency
  LastSyncTime As Currency
  lpHeaderInfo As Long
  dwHeaderInfoSize As Long
  lpszFileExtension As Long
  dwExemptDelta  As Long
  Buffer(0 To 1023) As Byte
End Type

Private Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" Alias "GetUrlCacheEntryInfoA" (ByVal sUrlName As String, lpCacheEntryInfo As Any, lpdwCacheEntryInfoBufferSize As Long) As Long
Private Declare Function lstrcpyA Lib "kernel32" (ByVal RetVal As String, ByVal Ptr As Long) As Long
Private Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Long

Public Function GetCacheEntryInfo(ByVal hWnd As Long, ByVal lpszUrl As String) As Boolean
  Dim dwEntrySize As Long
  Dim lpCacheEntry As INTERNET_CACHE_ENTRY_INFO
  Dim dwTemp As Long
  Dim lErr As Long
  dwEntrySize = Len(lpCacheEntry)
  lpCacheEntry.dwStructSize = dwEntrySize
  If (GetUrlCacheEntryInfo(lpszUrl, lpCacheEntry, dwEntrySize)) = 0 Then
    If StringFromPointer(lpCacheEntry.lpszLocalFileName) <> "" Then
      GetCacheEntryInfo = True
    End If
  End If
End Function

Private Function StringFromPointer(ByVal Ptr As Long) As String
  StringFromPointer = Space$(lstrlenA(Ptr))
  lstrcpyA StringFromPointer, Ptr
End Function


jikoryuu  2004-11-02 06:18:00  No: 86409

解決するのを忘れていました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加