谁能改写下面一段VB代码,清理IE缓存的!
字体大小: 小 中 大
The following code can be used to query and delete files in the internet cache (including cookies). A demonstration routine can be found at the bottom of this post. Note, the enumerated type eCacheType is not supported in Excel 97, but can be changed to a list of Public Constants eg. Public Const eNormal = &H1&.
Option Explicit
'--------------------------Types, consts and structures
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_CACHE_ENTRY_INFO_SIZE As Long = 4096
Private Const LMEM_FIXED As Long = &H0
Private Const LMEM_ZEROINIT As Long = &H40
Public Enum eCacheType
eNormal = &H1&
eEdited = &H8&
eTrackOffline = &H10&
eTrackOnline = &H20&
eSticky = &H40&
eSparse = &H10000
eCookie = &H100000
eURLHistory = &H200000
eURLFindDefaultFilter = 0&
End Enum
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 'Type of entry returned
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
'--------------------------Internet Cache API
Private Declare Function FindFirstUrlCacheEntry Lib "Wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, lpFirstCacheEntryInfo As Any, lpdwFirstCacheEntryInfoBufferSize As Long) As Long
Private Declare Function FindNextUrlCacheEntry Lib "Wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, lpNextCacheEntryInfo As Any, lpdwNextCacheEntryInfoBufferSize As Long) As Long
Private Declare Function FindCloseUrlCache Lib "Wininet.dll" (ByVal hEnumHandle As Long) As Long
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
'--------------------------Memory API
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
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
'Purpose : Deletes the specified internet cache file
'Inputs : sCacheFile The name of the cache file
'Outputs : Returns True on success.
'Author : Andrew Baker
'Date : 03/08/2000 19:14
'Notes :
'Revisions :
Function InternetDeleteCache(sCacheFile As String) As Boolean
InternetDeleteCache = CBool(DeleteUrlCacheEntry(sCacheFile))
End Function
'Purpose : Returns an array of files stored in the internet cache
'Inputs : eFilterType An enum which filters the files returned by their type
'Outputs : A one dimensional, one based, string array containing the names of the files
'Author : Andrew Baker
'Date : 03/08/2000 19:14
'Notes :
'Revisions :
Function InternetCacheList(Optional eFilterType As eCacheType = eNormal) As Variant
Dim ICEI As INTERNET_CACHE_ENTRY_INFO
Dim lhFile As Long, lBufferSize As Long, lptrBuffer As Long
Dim sCacheFile As String
Dim asURLs() As String, lNumEntries As Long
'Determine required buffer size
lBufferSize = 0
lhFile = FindFirstUrlCacheEntry(0&, ByVal 0&, lBufferSize)
If (lhFile = ERROR_CACHE_FIND_FAIL) And (Err.LastDllError = ERROR_INSUFFICIENT_BUFFER) Then
'Allocate memory for ICEI structure
lptrBuffer = LocalAlloc(LMEM_FIXED, lBufferSize)
If lptrBuffer Then
'Set a Long pointer to the memory location
CopyMemory ByVal lptrBuffer, lBufferSize, 4
'Call first find API passing it the pointer to the allocated memory
lhFile = FindFirstUrlCacheEntry(vbNullString, ByVal lptrBuffer, lBufferSize) '1 = success
If lhFile <> ERROR_CACHE_FIND_FAIL Then
'Loop through the cache
Do
'Copy data back to structure
CopyMemory ICEI, ByVal lptrBuffer, Len(ICEI)
If ICEI.CacheEntryType And eFilterType Then
sCacheFile = StrFromPtrA(ICEI.lpszSourceUrlName)
lNumEntries = lNumEntries + 1
If lNumEntries = 1 Then
ReDim asURLs(1 To 1)
Else
ReDim Preserve asURLs(1 To lNumEntries)
End If
asURLs(lNumEntries) = sCacheFile
End If
'Free memory associated with the last-retrieved file
Call LocalFree(lptrBuffer)
'Call FindNextUrlCacheEntry with buffer size set to 0.
'Call will fail and return required buffer size.
lBufferSize = 0
Call FindNextUrlCacheEntry(lhFile, ByVal 0&, lBufferSize)
'Allocate and assign the memory to the pointer
lptrBuffer = LocalAlloc(LMEM_FIXED, lBufferSize)
CopyMemory ByVal lptrBuffer, lBufferSize, 4&
Loop While FindNextUrlCacheEntry(lhFile, ByVal lptrBuffer, lBufferSize)
End If
End If
End If
'Free memory
Call LocalFree(lptrBuffer)
Call FindCloseUrlCache(lhFile)
InternetCacheList = asURLs
End Function
'Purpose : Converts a pointer an ansi string into a string.
'Inputs : lptrString A long pointer to a string held in memory
'Outputs : The string held at the specified memory address
'Author : Andrew Baker
'Date : 03/08/2000 19:14
'Notes :
'Revisions :
Function StrFromPtrA(ByVal lptrString As Long) As String
'Create buffer
StrFromPtrA = String$(lstrlenA(ByVal lptrString), 0)
'Copy memory
Call lstrcpyA(ByVal StrFromPtrA, ByVal lptrString)
End Function
'Demonstration routine
Sub Test()
Dim avURLs As Variant, vThisValue As Variant
On Error Resume Next
'Return an array of all internet cache files
avURLs = InternetCacheList
For Each vThisValue In avURLs
'Print files
Debug.Print CStr(vThisValue)
Next
'Return the an array of all cookies
avURLs = InternetCacheList(eCookie)
If MsgBox("Delete cookies?", vbQuestion + vbYesNo) = vbYes Then
For Each vThisValue In avURLs
'Delete cookies
InternetDeleteCache CStr(vThisValue)
Debug.Print "Deleted " & vThisValue
Next
Else
For Each vThisValue In avURLs
'Print cookie files
Debug.Print vThisValue
Next
End If
End Sub
相关推荐
电信运营基于分类模型的客户流失预警系统:数据挖掘驱动的精准挽留策略设计
内容概要:本文围绕电信客户流失预警与挽留策略,构建了一套从数据探索、预处理、特征工程、分类建模、模型评估与解释到业务落地的端到端数据挖掘实战方案。基于公开的 Telco Customer Churn 数据集,项目聚焦于识别高流失风险客户,并通过逻辑回归、随机森林和XGBoost等模型进行对比分析,结合ROC-AUC、精确率、召回率、F1等指标评估性能,利用SHAP等方法实现模型可解释性,最终将预测结果转化为可操作的客户分层与差异化挽留策略。文中强调了数据泄漏防范、类别不平衡处理、模型可复现性及A/B测试验证增量收益的重要性,并明确指出当前图表为示意性质,需通过附录代码运行真实数据生成结果。; 适合人群:具备一定数据分析与机器学习基础,从事数据科学、用户运营或客户留存相关工作的从业者,尤其是工作1-3年希望提升实战能力的研发与分析人员。; 使用场景及目标:①掌握客户流失预测的全流程方法论,包括数据清洗、特征工程、建模调参与模型解释;②学习如何将机器学习模型输出转化为可运营的客户触达策略;③理解模型评估与业务目标之间的衔接,如预算约束下的优先级排序与A/B测试设计; 阅读建议:此资源以实际业务场景驱动,不仅关注算法实现,更重视从业务定义到策略落地的闭环逻辑。建议结合附录提供的完整Python代码,在本地环境中下载数据集并复现分析流程,重点关注数据预处理防泄漏机制、模型管道构建、超参数调优策略及SHAP解释应用,避免将文中的示意图表误认为实测结果。
旋转高频信号注入法在PMSM零低速无位置控制中的仿真研究(Matlab代码实现)
内容概要:本文系统研究了旋转高频信号注入法在永磁同步电机(PMSM)零低速无位置传感器控制中的应用,并提供了基于Matlab/Simulink的完整仿真代码实现。针对PMSM在启动及低速运行时反电动势微弱导致传统观测器失效的问题,该方法通过在定子绕组中注入高频旋转电压信号,利用电机自身凸极效应产生的响应电流特征,实现对转子位置的高精度在线估计。文中详细阐述了该技术的理论基础、数学建模过程、仿真系统架构设计以及关键参数整定方法,全面验证了其在零速和低速工况下对转子初始位置辨识与动态跟踪的准确性、有效性及强鲁棒性。; 适合人群:具备电机控制理论基础知识和Matlab/Simulink仿真能力的电气工程、自动化、电力电子等相关专业的硕士研究生、博士研究生、科研人员以及从事高性能电机驱动系统研发的工程师。; 使用场景及目标:① 深入理解高频信号注入类无位置传感器控制技术的工作原理、信号处理机制与工程实现细节;② 掌握利用Matlab/Simulink搭建PMSM高性能矢量控制系统及高级观测器的仿真方法;③ 为开发高精度、低成本、全速度范围适用的PMSM无位置传感器驱动器提供坚实的理论依据和技术验证平台。; 阅读建议:建议读者结合文中详尽的理论推导与所提供的仿真代码进行对照学习,亲自动手运行、调试仿真模型,通过改变负载、转速、注入信号参数等工况,观察系统响应与控制效果的变化,从而深刻掌握旋转高频注入法的内在工作机制与设计要点。
Python小Demo实例源码爬取网易云音乐评论
Python小Demo实例源码爬取网易云音乐评论
Python3 finally执行铁律
finally代码块无论try内部是否报错、是否执行return,都会强制执行。唯一例外:调用os._exit()直接终止解释器,跳过finally。业务场景:数据库连接、网络套接字、文件句柄回收,放入finally保证资源释放。特殊细节:try内部return不会立刻返回,会先执行finally内部代码,再返回结果。新手易错:在finally内部写入return,会覆盖try原有返回值,导致业务数据异常,严禁在finally使用return语句。 tiyu.xastone.com www.yingjie168.com 17kuaibu.com www.0760yx.net 1900kk.com
基于线性时变MPC的无人驾驶车辆双移线轨迹跟踪仿真研究(Matlab代码、Simulink仿真实现)
基于线性时变MPC的无人驾驶车辆双移线轨迹跟踪仿真研究(Matlab代码、Simulink仿真实现)


