这个好象是在地址拦输入的记录,访问网页时的记录是在: C:\Documents and Settings\用户名\Local Settings\History这个文件夹下的。 如果想删除这个文件夹里的东西要怎么删除呢?我用了好多方法都不可以删除它啊!
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 = 4096Private 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 TypePrivate 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 TypePrivate Declare Function FindFirstUrlCacheEntry Lib "wininet" _ Alias "FindFirstUrlCacheEntryA" _ (ByVal lpszUrlSearchPattern As String, _ lpFirstCacheEntryInfo As Any, _ lpdwFirstCacheEntryInfoBufferSize As Long) As LongPrivate Declare Function FindNextUrlCacheEntry Lib "wininet" _ Alias "FindNextUrlCacheEntryA" _ (ByVal hEnumHandle As Long, _ lpNextCacheEntryInfo As Any, _ lpdwNextCacheEntryInfoBufferSize As Long) As LongPrivate Declare Function FindCloseUrlCache Lib "wininet" _ (ByVal hEnumHandle As Long) As LongPrivate 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
Private Sub Form_Load() Command1.Caption = "Get Cache" Command2.Caption = "Delete Selected" Command3.Caption = "Delete All" Label1.Caption = "" End SubPrivate Sub Form_Resize() If Me.WindowState <> vbMinimized Then
If Me.Width > 3000 Then
With Command1 .Left = Me.ScaleWidth - .Width - 200 .Top = 200 End With
With Command2 .Left = Command1.Left .Top = Command1.Top + Command1.Height + 100 End With
With Command3 .Left = Command1.Left .Top = Command2.Top + Command2.Height + 100 End With
With Label1 .Left = 200 .Top = Me.ScaleHeight - 100 - Label1.Height End With
With List1 .Left = 200 .Top = 200 .Width = Command1.Left - 300 .Height = (Me.ScaleHeight - 300) - (Me.ScaleHeight - Label1.Top) End With
End If
End If
End Sub Private Sub Command1_Click() With List1 .Visible = False .Clear Call GetCacheURLList .Visible = True
Label1.Caption = .ListCount & " files listed."
End WithEnd Sub Private Sub Command2_Click() Dim cachefile As String Dim currindex As Long Dim currtopindex As Long
End Sub Private Sub List1_Click() Command2.Enabled = InStr(List1.List(List1.ListIndex), "Cookie") = 0End Sub Private Sub GetCacheURLList()
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
If (icei.CacheEntryType And _ NORMAL_CACHE_ENTRY) = NORMAL_CACHE_ENTRY Then cachefile = GetStrFromPtrA(icei.lpszSourceUrlName) List1.AddItem cachefile End If Call LocalFree(pntrICE)
End SubPrivate Function GetStrFromPtrA(ByVal lpszA As Long) As String GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0) Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
楼上的大哥您好: 您这段代码删除的是C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files里的文件(也就是临时文件) 而不是访问的历史记录(也就是C:\Documents and Settings\用户名\Local Settings\History)这个文件夹的的文件啊。
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedUrls
遍历并删除下面的键值即可。
C:\Documents and Settings\用户名\Local Settings\History这个文件夹下的。
如果想删除这个文件夹里的东西要怎么删除呢?我用了好多方法都不可以删除它啊!
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 = 4096Private 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 TypePrivate 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 TypePrivate Declare Function FindFirstUrlCacheEntry Lib "wininet" _
Alias "FindFirstUrlCacheEntryA" _
(ByVal lpszUrlSearchPattern As String, _
lpFirstCacheEntryInfo As Any, _
lpdwFirstCacheEntryInfoBufferSize As Long) As LongPrivate Declare Function FindNextUrlCacheEntry Lib "wininet" _
Alias "FindNextUrlCacheEntryA" _
(ByVal hEnumHandle As Long, _
lpNextCacheEntryInfo As Any, _
lpdwNextCacheEntryInfoBufferSize As Long) As LongPrivate Declare Function FindCloseUrlCache Lib "wininet" _
(ByVal hEnumHandle As Long) As LongPrivate 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
Private Sub Form_Load()
Command1.Caption = "Get Cache"
Command2.Caption = "Delete Selected"
Command3.Caption = "Delete All"
Label1.Caption = ""
End SubPrivate Sub Form_Resize()
If Me.WindowState <> vbMinimized Then
If Me.Width > 3000 Then
With Command1
.Left = Me.ScaleWidth - .Width - 200
.Top = 200
End With
With Command2
.Left = Command1.Left
.Top = Command1.Top + Command1.Height + 100
End With
With Command3
.Left = Command1.Left
.Top = Command2.Top + Command2.Height + 100
End With
With Label1
.Left = 200
.Top = Me.ScaleHeight - 100 - Label1.Height
End With
With List1
.Left = 200
.Top = 200
.Width = Command1.Left - 300
.Height = (Me.ScaleHeight - 300) - (Me.ScaleHeight - Label1.Top)
End With
End If
End If
End Sub
Private Sub Command1_Click() With List1
.Visible = False
.Clear
Call GetCacheURLList
.Visible = True
Label1.Caption = .ListCount & " files listed."
End WithEnd Sub
Private Sub Command2_Click() Dim cachefile As String
Dim currindex As Long
Dim currtopindex As Long
With List1
currtopindex = .TopIndex
currindex = .ListIndex
cachefile = .List(currindex)
Call DeleteUrlCacheEntry(cachefile)
.Visible = False
GetCacheURLList
.TopIndex = currtopindex
If currindex >= .ListCount Then
.ListIndex = currindex - 1
Else
.ListIndex = currindex
End If
.Visible = True
Label1.Caption = .ListCount & " files listed."
End With
End Sub
Private Sub Command3_Click() Dim cachefile As String
Dim cnt As Long
With List1
For cnt = 0 To .ListCount - 1
cachefile = .List(cnt)
If InStr(cachefile, "Cookie") = 0 Then
Call DeleteUrlCacheEntry(cachefile)
End If
Next
.Visible = False
GetCacheURLList
.ListIndex = -1
.Visible = True
Label1.Caption = .ListCount & " files listed."
End With
End Sub
Private Sub List1_Click() Command2.Enabled = InStr(List1.List(List1.ListIndex), "Cookie") = 0End Sub
Private Sub GetCacheURLList()
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
List1.Clear
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)
List1.AddItem cachefile End If
Call LocalFree(pntrICE)
dwBuffer = 0
Call FindNextUrlCacheEntry(hFile, ByVal 0, dwBuffer)
pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)
CopyMemory ByVal pntrICE, dwBuffer, 4
Loop While FindNextUrlCacheEntry(hFile, ByVal pntrICE, dwBuffer)
End If
End If
End If
Call LocalFree(pntrICE)
Call FindCloseUrlCache(hFile)
End SubPrivate Function GetStrFromPtrA(ByVal lpszA As Long) As String GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
End Function
您这段代码删除的是C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files里的文件(也就是临时文件)
而不是访问的历史记录(也就是C:\Documents and Settings\用户名\Local Settings\History)这个文件夹的的文件啊。