`
ylilike
  • 浏览: 147771 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

删除cookies及上网历史记录(DELPHI代码完整版本)

阅读更多

//前面要加几个pas单元 
uses Registry,ShellApi, WinInet,ShlObj,ComObj

procedure DelRegCache; 
var 
       reg:TRegistry; 
begin 
       reg:=Tregistry.create; 
       reg.RootKey:=HKEY_CURRENT_USER; 
       reg.DeleteKey(’Software\Microsoft\Internet Explorer\TypedURLs’); 
       reg.Free; 
end; 
function GetCookiesFolder:string; 
var 
        pidl:pItemIDList; 
        buffer:array [ 0..255 ] of char ; 
begin 
       SHGetSpecialFolderLocation( 
         application.Handle , CSIDL_COOKIES, pidl); 
       SHGetPathFromIDList(pidl, buffer); 
       result:=strpas(buffer); 
end; 
function ShellDeleteFile(sFileName: string): Boolean; 
var 
      FOS: TSHFileOpStruct; 
begin 
       FillChar(FOS, SizeOf(FOS), 0); {记录清零} 
       with FOS do 
       begin 
           wFunc := FO_DELETE;//删除 
           pFrom := PChar(sFileName); 
           fFlags := FOF_NOCONFIRMATION; 
       end; 
       Result := (SHFileOperation(FOS) = 0); 
end; 

//删除cookies 
procedure DelCookie; 
var 
       dir:string; 
begin 
      try 
       InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0); 
       dir:=GetCookiesFolder; 
       ShellDeleteFile(dir+’\*.txt’+#0);        //网上很多代码这里没有加最后的#0,在xp下经测试会报错 
      except 
       abort; 
      end; 
end; 

//删除历史记录 
procedure DelHistory; 
var 
      lpEntryInfo: PInternetCacheEntryInfo; 
      hCacheDir: LongWord ; 
      dwEntrySize, dwLastError: LongWord; 
begin 
      try 
       dwEntrySize := 0; 
       FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize); 
       GetMem(lpEntryInfo, dwEntrySize); 
       hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize); 
       if hCacheDir 〈〉 0 then 
          DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName); 
       FreeMem(lpEntryInfo); 
       repeat 
         dwEntrySize := 0; 
         FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), 
           dwEntrySize); 
         dwLastError := GetLastError(); 
         if dwLastError = ERROR_INSUFFICIENT_BUFFER then //如果成功 
         begin 
             GetMem(lpEntryInfo, dwEntrySize); {分配dwEntrySize字节的内存} 
             if FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) then 
                DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName); 
             FreeMem(lpEntryInfo); 
         end; 
      until (dwLastError = ERROR_NO_MORE_ITEMS); 
except 
      abort; 
end; 
end; 

//补充函数

type   
       TSTATURL    =    record   
           cbSize:    DWORD;   
           pwcsUrl:    DWORD;   
           pwcsTitle:    DWORD;   
           ftLastVisited:    FILETIME;   
           ftLastUpdated:    FILETIME;   
           ftExpires:    FILETIME;   
           dwFlags:    DWORD;   
       end;   
    
   type   
       IEnumSTATURL    =    interface(IUnknown)   
           ['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']   
           function    Next(celt:    Integer;    out    elt;    pceltFetched:    PLongint):    HRESULT;    stdcall;   
           function    Skip(celt:    Longint):    HRESULT;    stdcall;   
           function    Reset:    HResult;    stdcall;   
           function    Clone(out    ppenum:    IEnumSTATURL):    HResult;    stdcall;   
           function    SetFilter(poszFilter:    PWideChar;    dwFlags:    DWORD):    HResult;    stdcall;   
       end;   
    
   type   
       IUrlHistoryStg    =    interface(IUnknown)   
           ['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']   
           function    AddUrl(pocsUrl:    PWideChar;    pocsTitle:    PWideChar;    dwFlags:    Integer):    HResult;    stdcall;   
           function    DeleteUrl(pocsUrl:    PWideChar;    dwFlags:    Integer):    HResult;    stdcall;   
           function    QueryUrl(pocsUrl:    PWideChar;    dwFlags:    Integer;    var    lpSTATURL:    TSTATURL):    HResult;    stdcall;   
           function    BindToObject(pocsUrl:    PWideChar;    var    riid:    TGUID;    out    ppvOut:    Pointer):    HResult;    stdcall;   
           function    EnumUrls(out    ppenum:    IEnumSTATURL):    HResult;    stdcall;   
       end;   
    
   type   
       IUrlHistoryStg2    =    interface(IUrlHistoryStg)   
           ['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']   
           function    AddUrlAndNotify(pocsUrl:    PWideChar;    pocsTitle:    PWideChar;    dwFlags:    Integer;   
               fWriteHistory:    Integer;    var    poctNotify:    Pointer;   
               const    punkISFolder:    IUnknown):    HResult;    stdcall;   
           function    ClearHistory:    HResult;    stdcall;   
       end;   
    
function ClearIEHistory:integer;   
   const   
           CLSID_CUrlHistory:    TGUID    =    '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';   
   var   
       IEHistory:IUrlHistoryStg2;   
   begin   
       IEHistory:=CreateComObject(CLSID_CUrlHistory)    as    IUrlHistoryStg2;
       IEHistory.ClearHistory;   
   end;   


procedure TForm1.Button1Click(Sender: TObject); 
begin 
       try 
          DelRegCache;//清理注册表 
          DelCookie;         //删除cookies(ie缓冲文件夹下面cookies文件) 
          DelHistory;        //删除历史记录(ie缓冲文件夹下所有文件)
       //C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files 
          ClearIEHistory; //补充删除网页历史
       except 
            abort; 
       end; 
end;

分享到:
评论

相关推荐

    VB029-删除上网历史记录 源代码

    这个名为"VB029-删除上网历史记录 源代码"的压缩包文件显然包含了一个使用Visual Basic(VB)编写的程序,该程序专门设计用于清除用户的上网浏览历史记录。下面将详细介绍这个主题涉及的相关知识点。 1. **Visual ...

    delphi 使用cookies

    在Delphi中,处理Cookies可以帮助开发者创建更具有交互性和个性化的Web应用。以下是对"delphi 使用cookies"这一主题的详细阐述: 一、理解Cookies Cookies的主要用途包括会话管理、个性化设置、网站统计等。每个...

    清空IE历史记录的代码资源

    这段VBS代码首先检查历史记录的默认路径是否存在,如果存在,它将遍历该目录下的所有子目录,并逐个删除。最后,主目录也会被删除,从而彻底清空IE历史记录。 对于更复杂的场景,例如需要控制删除的范围(如仅清除...

    Cookies.rar_cookies_cookies.rar_delphi cooki_delphi cooki_浏览器

    而"获取及修改浏览器中的Cookies"这个文件很可能是程序的主体部分,包含了实际实现获取和修改Cookies功能的代码。 在Delphi中,实现这个功能可能涉及到以下几个步骤: 1. **引入相关库**:首先,你需要引入能操作...

    delphi删除Cookies文件

    ### Delphi删除Cookies文件 #### 知识点一:Delphi获取Cookies文件夹路径 - **函数名称**:`GetCookiesFolder` - **功能描述**:该函数用于获取存储Cookies的文件夹路径。 - **实现原理**: - 使用Windows API...

    delphi ics 2010版本

    **Delphi ICS 2010 版本详解** Delphi ICS(Internet Component Suite)是一套由OverbyteLabs开发的组件库,专为Delphi编程环境设计,用于构建网络应用程序。这个2010年的版本是该组件集的一个重要里程碑,包含了...

    电脑中的cookies怎么删除 彻底清除上网痕迹方法【步骤】.docx

    Cookies 删除与上网痕迹清除方法 Cookies 是一种常见的网络技术,能够让网站服务器将少量数据存储到客户端的硬盘或内存中,以便记录用户的浏览活动。但是,Cookies 也可能会带来隐私问题和安全风险。因此,了解...

    vc源码 清空PC历史记录

    【标题】"VC源码:清空PC历史记录"指的是使用Microsoft Visual C++(简称VC)编程语言编写的源代码,旨在清除计算机上的历史记录,包括但不限于浏览历史、搜索历史、下载历史等。这一功能在保护用户隐私和优化系统...

    vc中实现历史记录的全面清除

    本文将深入探讨在VC环境中如何实现历史记录的全面清除,包括Internet临时文件、Cookies等关键组件的清理策略。 ### 重要性 历史记录,无论是浏览器缓存、Cookies还是其他类型的用户活动记录,都可能包含敏感信息,...

    IdHTTP控件操作Cookies的DELPHI实例..rar

    接下来,让我们看看如何在实际代码中处理Cookies: 1. **设置CookieManager**:在初始化`TIdHTTP`实例时,确保为`CookieManager`属性分配一个`TIdCookieManager`对象。这将允许`TIdHTTP`在请求和响应之间自动处理...

    弹出自定义搜索带历史记录

    在IT行业中,自定义搜索框和历史记录功能是提高用户体验和效率的重要工具。尤其是在Web开发、桌面应用或者移动应用设计中,这样的功能可以让用户快速访问他们之前查询过的信息,节省了重复输入的时间,提升了交互性...

    IE编程实例 删除IE相关历史记录

    在IE(Internet Explorer)编程中,有时候我们需要对用户的浏览历史记录进行操作,比如删除。这个实例就是关于如何使用C++编程来实现删除IE的历史记录。IE浏览器保存的浏览历史、临时互联网文件、Cookie等信息,可以...

    上网记录深度搜索工具

    提及“删除历史记录”,意味着该工具提供了便捷的方式,帮助用户消除浏览器及其他应用程序的历史记录,以防止个人信息泄露。 在标签“上网记录”中,我们可以理解到这个工具的核心功能是围绕着管理和清除与网络活动...

    Delphi网页爬取.rar

    Delphi是一种基于Object Pascal语言的集成开发环境,它以其高效性和灵活性在开发桌面应用程序领域有着广泛的应用。在本"Delphi网页爬取.rar"压缩包中,我们可以看到一个使用Delphi构建的网络爬虫项目。网络爬虫是...

    早期写的Delphi版IE清道夫源代码..rar

    它主要用于清理用户在浏览Internet Explorer时留下的各种痕迹,如历史记录、临时文件、cookies等,保护用户的隐私和提高系统性能。Delphi的易用性和灵活性使得开发这样的工具变得相当便捷。 源代码分析: 1. **...

    c++生成cookies代码

    标题提到的“c++生成cookies代码”是指使用C++编写程序来创建和管理Cookies。 描述中提到的“万能c++生成cookies代码”可能是指一个C++程序,它可以动态地根据用户输入生成相应的Cookies值。这种灵活性对于测试、...

    delphi操作NetHTTPClient读写cookie例子

    delphi操作NetHTTPClient读写cookie例子

    删除cookies.ec

    删除cookies.ec删除cookies.ec

    最近浏览记录(Cookies)

    标题中的“最近浏览记录(Cookies)”指的是网络浏览器中的一项功能,它允许网站保存用户的浏览历史,以便在用户下次访问时提供个性化体验。Cookies是由服务器发送到用户浏览器并存储在本地的一小段文本数据,它们在...

    delphi indy10 for delphi7

    标题"delphi indy10 for delphi7"指的是Indy 10版本针对Delphi 7开发环境的集成。描述中的"indy 10.2.5 for delphi7"进一步明确了这是Indy库的10.2.5版,专为Delphi 7设计。 在Delphi 7中,Indy 10是一个强大的工具...

Global site tag (gtag.js) - Google Analytics