请问怎样使用DIR命令解决History记录?

daewoo 2003-10-22 07:16:17
怎样用DIR删除History里的记录。谢谢!
...全文
51 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
daewoo 2003-10-23
  • 打赏
  • 举报
回复
好这段代码真是不错 非常感谢!
daewoo 2003-10-23
  • 打赏
  • 举报
回复
是不是使用DIR速度更快一点?
rainstormmaster 2003-10-22
  • 打赏
  • 举报
回复
没什么,就是直接调用ie的相关接口
kmzs 2003-10-22
  • 打赏
  • 举报
回复
看来很强
rainstormmaster 2003-10-22
  • 打赏
  • 举报
回复
模块:
Option Explicit

Public Type UUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type

Private Const CLSCTX_INPROC = &H1& Or &H2&
Private Const CC_STDCALL = 4

Private Declare Function CoCreateInstance Lib "OLE32" _
(ByRef rclsid As UUID, _
ByVal pUnkOuter As Long, _
ByVal dwClsContext As Long, _
ByRef riid As UUID, _
ByRef ppv As Long) As Long

Private Declare Function DispCallFunc Lib "OLEAUT32" _
(ByVal pvInstance As Long, _
ByVal oVft As Long, _
ByVal CallConv As Long, _
ByVal vtReturn As VbVarType, _
ByVal cActuals As Long, _
ByRef prgvt As Integer, _
ByRef prgpvarg As Long, _
ByRef pvargResult As Variant) As Long

'Vtbl
Public Enum eVtblFunctionOffsetCUrlHistory
' IUrlHistoryStg2 Interface
vtblOffsetAddUrlAndNotify = 32 '6 Args
vtblOffsetClearHistory = 36 '0 Arg
' IUrlHistoryStg Interface
vtblOffsetAddUrl = 12 '3 Args
vtblOffsetDeleteUrl = 16 '2 Args
vtblOffsetQueryUrl = 20 '3 Args
vtblOffsetBindToObject = 24 '3 Args
vtblOffsetEnumUrls = 28 '1 Arg
' IUnknwon Interface
vtblOffsetQueryInterface = 0 '2 Args
vtblOffsetAddRef = 4 '0 Arg
vtblOffsetRelease = 8 '0 Arg
End Enum

Private Function CLSID_CUrlHistory() As UUID
'Object[Microsoft Url History Service]
'HKCR\CLSID\{3C374A40-BAE4-11CF-BF7D-00AA006946EE}
With CLSID_CUrlHistory
.Data1 = &H3C374A40
.Data2 = &HBAE4
.Data3 = &H11CF
.Data4(0) = &HBF
.Data4(1) = &H7D
.Data4(2) = &H0
.Data4(3) = &HAA
.Data4(4) = &H0
.Data4(5) = &H69
.Data4(6) = &H46
.Data4(7) = &HEE
End With
End Function

Private Function IID_IUrlHistoryStg() As UUID
'Interface[IID_IUrlHistoryStg]
'HKCR\Interface\{3C374A41-BAE4-11CF-BF7D-00AA006946EE}
With IID_IUrlHistoryStg2
.Data1 = &HAFA0DC11
.Data2 = &HC313
.Data3 = &H11D0
.Data4(0) = &H83
.Data4(1) = &H1A
.Data4(2) = &H0
.Data4(3) = &HC0
.Data4(4) = &H4F
.Data4(5) = &HD5
.Data4(6) = &HAE
.Data4(7) = &H38
End With
End Function

Private Function IID_IUrlHistoryStg2() As UUID
'Interface[IUrlHistoryStg2]
'HKCR\Interface\{AFA0DC11-C313-11D0-831A-00C04FD5AE38}
With IID_IUrlHistoryStg2
.Data1 = &HAFA0DC11
.Data2 = &HC313
.Data3 = &H11D0
.Data4(0) = &H83
.Data4(1) = &H1A
.Data4(2) = &H0
.Data4(3) = &HC0
.Data4(4) = &H4F
.Data4(5) = &HD5
.Data4(6) = &HAE
.Data4(7) = &H38
End With
End Function

Public Sub DelHistory()
Dim hr As Long
Dim udtCUrlHistory As UUID
Dim udtIUrlHistoryStg2 As UUID
Dim lngPUrlHistoryStg2 As Long
Dim lngPArgs() As Long
Dim intVtArgs() As Integer
Dim varResult As Variant

udtCUrlHistory = CLSID_CUrlHistory
udtIUrlHistoryStg2 = IID_IUrlHistoryStg2
hr = CoCreateInstance _
(udtCUrlHistory, _
0&, _
CLSCTX_INPROC, _
udtIUrlHistoryStg2, _
lngPUrlHistoryStg2)
If hr <> 0& Then
Debug.Print Err.LastDllError
Err.Raise hr
Else
ReDim lngPArgs(0)
ReDim intVtArgs(0)
hr = DispCallFunc _
(lngPUrlHistoryStg2, _
vtblOffsetClearHistory, _
CC_STDCALL, _
vbLong, _
0, _
intVtArgs(0), _
lngPArgs(0), _
varResult)

ReDim lngPArgs(0)
ReDim intVtArgs(0)
hr = DispCallFunc _
(lngPUrlHistoryStg2, _
vtblOffsetRelease, _
CC_STDCALL, _
vbLong, _
0, _
intVtArgs(0), _
lngPArgs(0), _
varResult)
End If
End Sub

窗体:(一个按钮)
Private Sub Command1_Click()
DelHistory
End Sub


since1990 2003-10-22
  • 打赏
  • 举报
回复
up

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧