ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 91708x

[求助] 如何删除IE缓存中的文件

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-19 13:49 | 显示全部楼层
原帖由 secowu 于 2010-8-19 13:44 发表
传不了wmv
看gif

你在C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\里面找个文件试一下就知道不行了

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-19 13:58 | 显示全部楼层
原帖由 kevinchengcw 于 2010-8-19 13:48 发表
使用中的文件是删除不了的

你在命令行下试一下/c后面的内容就知道了,会提示访问被拒绝,然后跳到下一个文件继续执行了

应该不是正在使用的问题,我是用VBA调用的,窗口没打开
Open "GET", "http://*************.aspx", False
我就是要把该网站产生的cookie清除掉,下次再调用的时候,网站数据就刷新了,没清除掉的话下载的数据就是上次调用的

[ 本帖最后由 91708x 于 2010-8-19 14:01 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-8-19 14:01 | 显示全部楼层
使用并不一定是打开,有时仅仅是关连到某个程序上了,如果重启后还不能删除才能说明问题,不过dos命令都删除不掉的文件一定有特殊原因,我基本都是用这种方式来删除临时文件的,那个批处理就行了

TA的精华主题

TA的得分主题

发表于 2010-8-19 14:37 | 显示全部楼层
复制个别人的代码,(记不清哪来的了,原作者末怪啊.)可以删除所有的cookie信息,供参考:(调试通过)
Option Explicit
Private Const ERROR_CACHE_FIND_FAIL As Long = 0
Private Const ERROR_CACHE_FIND_SUCCESS As Long = 1
Private Const ERROR_FILE_NOT_FOUND As Long = 2
Private Const ERROR_ACCESS_DENIED As Long = 5
Private Const ERROR_INSUFFICIENT_BUFFER As Long = 122
Private Const MAX_PATH As Long = 260
Private Const MAX_CACHE_ENTRY_INFO_SIZE As Long = 4096
Private Const LMEM_FIXED As Long = &H0
Private Const LMEM_ZEROINIT As Long = &H40
Private Const LPTR As Long = (LMEM_FIXED Or LMEM_ZEROINIT)
Private Const NORMAL_CACHE_ENTRY As Long = &H1
Private Const EDITED_CACHE_ENTRY As Long = &H8
Private Const TRACK_OFFLINE_CACHE_ENTRY As Long = &H10
Private Const TRACK_ONLINE_CACHE_ENTRY As Long = &H20
Private Const STICKY_CACHE_ENTRY As Long = &H40
Private Const SPARSE_CACHE_ENTRY As Long = &H10000
Private Const COOKIE_CACHE_ENTRY As Long = &H100000
Private Const URLHISTORY_CACHE_ENTRY As Long = &H200000
Private Const URLCACHE_FIND_DEFAULT_FILTER As Long = NORMAL_CACHE_ENTRY Or _
                                                     COOKIE_CACHE_ENTRY Or _
                                                     URLHISTORY_CACHE_ENTRY Or _
                                                     TRACK_OFFLINE_CACHE_ENTRY Or _
                                                     TRACK_ONLINE_CACHE_ENTRY Or _
                                                     STICKY_CACHE_ENTRY
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 FILETIME
    ExpireTime As FILETIME
    LastAccessTime As FILETIME
    LastSyncTime As FILETIME
    lpHeaderInfo As Long
    dwHeaderInfoSize As Long
    lpszFileExtension As Long
    dwExemptDelta   As Long
End Type

Private Declare Function FindFirstUrlCacheEntry Lib "wininet" _
    Alias "FindFirstUrlCacheEntryA" _
   (ByVal lpszUrlSearchPattern As String, _
    lpFirstCacheEntryInfo As Any, _
    lpdwFirstCacheEntryInfoBufferSize As Long) As Long

Private Declare Function FindNextUrlCacheEntry Lib "wininet" _
    Alias "FindNextUrlCacheEntryA" _
   (ByVal hEnumHandle As Long, _
    lpNextCacheEntryInfo As Any, _
    lpdwNextCacheEntryInfoBufferSize As Long) As Long

Private Declare Function FindCloseUrlCache Lib "wininet" _
    (ByVal hEnumHandle As Long) As Long

Private Declare Function DeleteUrlCacheEntry Lib "wininet" _
    Alias "DeleteUrlCacheEntryA" _
   (ByVal lpszUrlName As String) As Long
  
Private Declare Sub CopyMemory Lib "kernel32" _
    Alias "RtlMoveMemory" _
    (pDest As Any, _
     pSource As Any, _
     ByVal dwLength 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

Private Declare Function LocalAlloc Lib "kernel32" _
    (ByVal uFlags As Long, _
     ByVal uBytes As Long) As Long
   
Private Declare Function LocalFree Lib "kernel32" _
    (ByVal hMem As Long) As Long
      



Public Sub DeleteCacheURLList()
   
    Dim icei As INTERNET_CACHE_ENTRY_INFO
    Dim hFile As Long
    Dim cachefile As String
    Dim posUrl As Long
    Dim posEnd As Long
    Dim dwBuffer As Long
    Dim pntrICE As Long


    hFile = FindFirstUrlCacheEntry(0&, ByVal 0, dwBuffer)

    If (hFile = ERROR_CACHE_FIND_FAIL) And _
       (Err.LastDllError = ERROR_INSUFFICIENT_BUFFER) Then

       pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)

       If pntrICE <> 0 Then

          CopyMemory ByVal pntrICE, dwBuffer, 4

          hFile = FindFirstUrlCacheEntry(vbNullString, _
                                         ByVal pntrICE, _
                                         dwBuffer)
     

          If hFile <> ERROR_CACHE_FIND_FAIL Then

             Do
           
                CopyMemory icei, ByVal pntrICE, Len(icei)
         

                If (icei.CacheEntryType And _
                    NORMAL_CACHE_ENTRY) = NORMAL_CACHE_ENTRY Then

                   cachefile = GetStrFromPtrA(icei.lpszSourceUrlName)
                   Call DeleteUrlCacheEntry(cachefile)

                End If
              
                Call LocalFree(pntrICE)
              
                dwBuffer = 0
                Call FindNextUrlCacheEntry(hFile, ByVal 0, dwBuffer)
              
               'allocate and assign the memory to the pointer
                pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)
                CopyMemory ByVal pntrICE, dwBuffer, 4
              
                DoEvents
              
             Loop While FindNextUrlCacheEntry(hFile, ByVal pntrICE, dwBuffer)

          End If 'hFile
        
       End If 'pntrICE
  
    End If 'hFile
  
    Call LocalFree(pntrICE)
    Call FindCloseUrlCache(hFile)
  
End Sub


Private Function GetStrFromPtrA(ByVal lpszA As Long) As String

    GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
    Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
  
End Function

[ 本帖最后由 ideal77 于 2010-8-19 14:44 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-19 18:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-1 11:05 | 显示全部楼层
本帖最后由 引子玄 于 2012-6-1 11:08 编辑

我的办法是点:IE浏览器的“安全”——“删除历史记录”
应该来说,是最正宗的办法,来自IE鼻祖自带的系统设置。

TA的精华主题

TA的得分主题

发表于 2014-11-16 09:11 | 显示全部楼层
ideal77 发表于 2010-8-19 14:37
复制个别人的代码,(记不清哪来的了,原作者末怪啊.)可以删除所有的cookie信息,供参考:(调试通过)
Option Ex ...

学习了,多谢分享!

TA的精华主题

TA的得分主题

发表于 2016-10-15 15:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 22:21 , Processed in 0.038964 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表