我用Webbrowser控件做了一个浏览器,想在访问的时候不留下历史记录和访问网页时的临时文件。请问这能实现吗?高手门请帮帮我~~~~非常感谢

解决方案 »

  1.   

    Webbrowser控件和IE使用相同的内核,它也会把临时文件放在IE的临时文件夹中。不生成临时文件是不可能的,只能在退出你的浏览器时进行清除。相应代码可在本论坛上搜索。
      

  2.   

    IE历史记录保存在注册表中如下位置:
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedUrls
    遍历并删除下面的键值即可。
      

  3.   

    这个好象是在地址拦输入的记录,访问网页时的记录是在:
    C:\Documents and Settings\用户名\Local Settings\History这个文件夹下的。
    如果想删除这个文件夹里的东西要怎么删除呢?我用了好多方法都不可以删除它啊!
      

  4.   

    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
       
       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
     
      

  5.   

    楼上的大哥您好:
    您这段代码删除的是C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files里的文件(也就是临时文件)
    而不是访问的历史记录(也就是C:\Documents and Settings\用户名\Local Settings\History)这个文件夹的的文件啊。
      

  6.   

    http://support.microsoft.com/default.aspx?scid=kb;en-us;Q327569
      

  7.   

    楼上的大哥您好  您这个是VC的代码  请问有没有VB的代码呢?