VC删除IE缓存、COOKIE及记录

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

原文转载自:http://blog.csdn.net/whatday/article/details/7566925


首先: 在  stdafx.h中要加入: #include "atlbase.h"
设置->Link  要引入库 :  Wininet.lib shlwapi.lib 

//在对话框的头文件中加入:

#include "wininet.h"#include "UrlHist.h"#define SWEEP_BUFFER_SIZE 10000public:enum DEL_CACHE_TYPE //要删除的类型。{File,//表示internet临时文件Cookie //表示Cookie};
//以下为一些辅助函数 ( 辅助函数的具体实现参见源代码中.限于篇幅不再给出 )
BOOL DeleteUrlCache(DEL_CACHE_TYPE type);BOOL EmptyDirectory(LPCTSTR szPath, BOOL bDeleteDesktopIni = FALSE, BOOL bWipeIndexDat = FALSE);//清空一个目录BOOL IsWindowsNT();//判断系统BOOL IsWindows2k();BOOL GetUserSid(PSID* ppSid);void GetSidString(PSID pSid, LPTSTR szBuffer);BOOL GetOldSD(HKEY hKey, LPCTSTR pszSubKey, BYTE** pSD);BOOL CreateNewSD(PSID pSid, SECURITY_DESCRIPTOR* pSD, PACL* ppDacl);BOOL RegSetPrivilege(HKEY hKey, LPCTSTR pszSubKey, SECURITY_DESCRIPTOR* pSD, BOOL bRecursive);BOOL WipeFile(LPCTSTR szDir, LPCTSTR szFile);

//现在我们可以分别实现每项清除功能。

1、清除IE临时文件

TCHAR szPath[MAX_PATH];
DeleteUrlCache(File);
if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_INTERNET_CACHE, FALSE))
{ //得到临时目录,并清空它.
EmptyDirectory(szPath);
}

清除IE临时文件的另外一个途径是直接调用Wininet函数,请看下面用于清除IE临时文件的函数

BOOL DelTempFiles() { BOOL bResult = FALSE; BOOL bDone = FALSE; LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL; DWORD dwTrySize, dwEntrySize = 4096; // start buffer size HANDLE hCacheDir = NULL; DWORD dwError = ERROR_INSUFFICIENT_BUFFER; do { switch (dwError) { // need a bigger buffer case ERROR_INSUFFICIENT_BUFFER: delete [] lpCacheEntry; lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize]; lpCacheEntry->dwStructSize = dwEntrySize; dwTrySize = dwEntrySize; BOOL bSuccess; if (hCacheDir == NULL) bSuccess = (hCacheDir = FindFirstUrlCacheEntry(NULL, lpCacheEntry, &dwTrySize)) != NULL; else bSuccess = FindNextUrlCacheEntry(hCacheDir, lpCacheEntry, &dwTrySize); if (bSuccess) dwError = ERROR_SUCCESS; else { dwError = GetLastError(); dwEntrySize = dwTrySize; // use new size returned } break; // we are done case ERROR_NO_MORE_ITEMS: bDone = TRUE; bResult = TRUE; break; // we have got an entry case ERROR_SUCCESS: // don''''''''''''''''t delete cookie entry if (!(lpCacheEntry->CacheEntryType & COOKIE_CACHE_ENTRY)) DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName); // get ready for next entry dwTrySize = dwEntrySize; if (FindNextUrlCacheEntry(hCacheDir, lpCacheEntry, &dwTrySize)) dwError = ERROR_SUCCESS; else { dwError = GetLastError(); dwEntrySize = dwTrySize; // use new size returned } break; // unknown error default: bDone = TRUE; break; } if (bDone) { delete [] lpCacheEntry; if (hCacheDir) FindCloseUrlCache(hCacheDir); } } while (!bDone); return bResult;}

2、Cookie的清除

TCHAR szPath[MAX_PATH];DeleteUrlCache(Cookie);if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_COOKIES, FALSE)){//得到目录,并清空 EmptyDirectory(szPath);}

3、浏览器地址栏历史地址的清除

SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\TypedURLs"));

4、清除表单自动完成历史记录

CString sKey;DWORD dwRet;if (IsWindows2k() || IsWindowsNT())//先判断系统{CString sBaseKey;SECURITY_DESCRIPTOR NewSD;BYTE* pOldSD;PACL pDacl = NULL;PSID pSid = NULL;TCHAR szSid[256];if (GetUserSid(&pSid)){//get the hiden key nameGetSidString(pSid, szSid);sKey = _T("Software\\Microsoft\\Protected Storage System Provider\\");sKey += szSid;//get old SDsBaseKey = sKey;GetOldSD(HKEY_CURRENT_USER, sBaseKey, &pOldSD);//set new SD and then clearif (CreateNewSD(pSid, &NewSD, &pDacl)){RegSetPrivilege(HKEY_CURRENT_USER, sKey, &NewSD, FALSE);sKey += _T("\\Data");RegSetPrivilege(HKEY_CURRENT_USER, sKey, &NewSD, FALSE);sKey += _T("\\e161255a-37c3-11d2-bcaa-00c04fd929db");RegSetPrivilege(HKEY_CURRENT_USER, sKey, &NewSD, TRUE);dwRet = SHDeleteKey(HKEY_CURRENT_USER, sKey);}if (pDacl != NULL)HeapFree(GetProcessHeap(), 0, pDacl);//restore old SDif (pOldSD){RegSetPrivilege(HKEY_CURRENT_USER, sBaseKey, (SECURITY_DESCRIPTOR*)pOldSD, FALSE);delete pOldSD;}}if (pSid)HeapFree(GetProcessHeap(), 0, pSid);}//win9xDWORD dwSize = MAX_PATH;TCHAR szUserName[MAX_PATH];GetUserName(szUserName, &dwSize);sKey = _T("Software\\Microsoft\\Protected Storage System Provider\\");sKey += szUserName;sKey += _T("\\Data\\e161255a-37c3-11d2-bcaa-00c04fd929db");dwRet = SHDeleteKey(HKEY_LOCAL_MACHINE, sKey);

5、清除自动密码历史记录

SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\IntelliForms"));

6、清收藏夹中的内容
TCHAR szPath[MAX_PATH]; 
if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_FAVORITES, FALSE))
{ //得到目录,并清空 
EmptyDirectory(szPath);
}

7、清RAS自动拨号历史记录

SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\RAS Autodial\\Addresses"));

8、清系统临时文件夹

TCHAR szPath[MAX_PATH];if (GetTempPath(MAX_PATH, szPath))//得到系统临时目录{ EmptyDirectory(szPath, TRUE);}

9、清空回收站

SHEmptyRecycleBin(NULL, NULL, 
SHERB_NOCONFIRMATION | SHERB_NOPROGRESSUI | SHERB_NOSOUND);

10、清除"运行"中的自动匹配历史记录

SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU"));

11、清"文档"中的历史记录

TCHAR szPath[MAX_PATH];if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_RECENT, FALSE)){ EmptyDirectory(szPath);} SHDeleteKey(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RecentDocs"));

12、清除上次登陆用户记录

SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon"), _T("DefaultUserName"));SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon"), _T("AltDefaultUserName"));SHDeleteValue(HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon"), _T("DefaultUserName"));

13、清除"查找文件"自动匹配历史记录

SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Doc Find Spec MRU"));SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\Explorer Bars\\{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}\\ContainingTextMRU"));SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\Explorer Bars\\{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}\\FilesNamedMRU"));

14、清除"查找计算机"自动匹配历史记录

SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FindComputerMRU"));SHDeleteKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\Explorer Bars\\{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}\\ComputerNameMRU"));

15、清除网络联接历史记录

TCHAR szPath[MAX_PATH];if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_NETHOOD, FALSE)){ //得到目录,并清空 EmptyDirectory(szPath);}

16、清远程登录历史记录

CString sKey;for (int i=1; i<=8; i++){ sKey.Format(_T("Machine%d"), i); SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Telnet"), sKey); sKey.Format(_T("Service%d"), i); SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Telnet"), sKey); sKey.Format(_T("TermType%d"), i); SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Telnet"), sKey);}SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Telnet"), _T("LastMachine"));SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Telnet"), _T("LastService"));SHDeleteValue(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Telnet"), _T("LastTermType"));

17、清浏览网址历史记录
下面这个函数可以用于清除网址历史记录

#include "SHLGUID.H"HRESULT ClearHistory() {HRESULT hr;CoInitialize(NULL);{ IUrlHistoryStg2* pUrlHistoryStg2 = NULL; hr= CoCreateInstance(CLSID_CUrlHistory,NULL,1, IID_IUrlHistoryStg2,(void**)&pUrlHistoryStg2); if (SUCCEEDED(hr)) { hr = pUrlHistoryStg2->ClearHistory(); pUrlHistoryStg2->Release(); }}CoUninitialize(); return hr;}


// 如果上面代码不能清
// 则有下面的,不完美,但能工作.

TCHAR szPath[MAX_PATH];GetWindowsDirectory(szPath, MAX_PATH);_tcscat(szPath, _T("\\History"));EmptyDirectory(szPath, FALSE, TRUE); if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_HISTORY, FALSE)){ EmptyDirectory(szPath, FALSE, TRUE);}
VC++集成Edge WebView2:现代浏览器内核嵌入桌面应用开发指南 在现代桌面应用开发中,浏览器内核嵌入技术是实现混合架构的关键。其核心原理是通过组件化技术将Chromium等渲染引擎集成到原生应用中,实现Web内容的本地渲染与交互。这项技术的核心价值在于能够将现代Web生态的丰富能力(如Vue3、React等框架支持)与原生应用的性能及系统集成优势相结合,显著提升开发效率与用户体验。在应用场景上,它广泛适用于客户端软件的内置帮助文档、数据仪表盘、在线客服系统以及混合应用主界面等需要内嵌Web内容的场景。本文聚焦于VC++(Visual C++)开发环境,深入探讨如何利用微 阅读详情

相关推荐

收藏一个清除IE缓存的控件(可以指定清除哪些缓存)

NULL 博文链接:https://sheng.iteye.com/blog/998505

微信网页调试之利用vConsole真机调试

虽然微信开发者工具可以调试大多数情况,但有些问题开发者工具没法调试,只能在真机里调试 真机调试有多重方式 第一种就是手机连接电脑结合Chrome的inspect进行USB远程调试,这个日后补充 第二种是开启vConsole,直接手机上就可以调,优点是方便,不用连接电脑,能看到大多数信息,缺点是不能打断点 下面介绍如何使用 1.开启vConsole 微信里访问:debugx5.qq.c...

flysnownet的博客 2万+

清理IE缓存命令

直接复制以下命令,另存为bat格式文件!简单方便的IE清理工具就此诞生~ 所有东西都是围绕这个命令来完成的: @Rundll32 InetCpl.cpl,ClearMyTracksByProcess

Devper的博客 5417

用ini文件实现最近文件MRU

VC++的MFC对最近文件进行了包装,它使用户无需编写任何代码就可实现最近文件菜单。但这种方法也有缺陷:    ①用户程序必须使用文档、视图结构,只能利用它提供的文档打开和保存文件,如果你使用自己编写的函数打开和保存文件,绕过了它的文档,则最近文件将无法使用。   ②这种最近文件保存在注册表中,不易清除,容易形成注册表中垃圾,也没有提供用户清除最近文件的权利,不利于用户隐私的保护。   用ini文

599

C++如何清除屏幕上的内容?

清屏,是一个非常重要的东西,平时做程序经常用到的东西。但是有些人就会问清屏如何实现呢?今天我就分享给大家清屏的方法!

Code_easy的博客 2万+

vc清理IE缓存

说明 很多客户不会清理IE缓存,而IE缓存时间过长不仅导致电脑运行速度缓慢,还容易导致一些莫名其妙的问题,于是编写了一个控制台程序,一键清理IE缓存。 代码 #include <stdio.h>#include <Windows.h>#include <tlhelp32.h> // 声明快照函数的头文件#include <ShellAPI.h&g...

weixin_30487317的博客 162

VC删除IE缓存COOKIE及浏览记录

VC删除IE缓存COOKIE及浏览记录 Vc删除IE缓存cOOKIE及浏览记录,刚做了一个实验,发现不能运用c++函数库和windows提供的FindFirstFile和FindNextFile来查找c:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files里面的临时文件。 上网

八零后 1177

VC VB Delphi 清除IE缓存 internet临时文件 cookie 历史记录 表单记录 上网密码

如果想命令行方式来清除ie缓冲,可以使用借助rundll32.exe 来运行internet选项的对应功能。 temporary internet files  (internet临时文件) rundll32.exe inetcpl.cpl,clearmytracksbyprocess 8 cookies rundll32.exe inetcpl.cpl,clearmytracksbypr

找个地方放一下 2084

VC 清除IE缓存cookie、历史记录

用完计算机之后,往往不希望别人发现你做过什么,和浏览过什么网址。(特别是和多人共用一台机子时)。当然,你可以手工清理那些记录。 但那是多么繁杂的一件事啊。 我想没人愿意那样做。于是,我想到用一个软件来一次性完成上述工作。   清除历史记录的文章很多,但是一般都不够全面。本人经过整理和收集一些资料,加以融合。得到了一个较全面的历史记录清除方法。   在这里要指出代码能完成,要特别感谢朋友 x

donglinshengan的专栏 6901

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

<!-- alimama_pid="mm_10249644_1605763_4929893"; alimama_titlecolor="707070"; alimama_descolor ="CCCCCC"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="FFFFFF"; alimama_linkcolor="DADA

4789

2026开源AI模型双机实测:量化部署与本地运行全指南

开源大模型如今已进入“挑着用”阶段,但想在本地高效部署,离不开对量化、GGUF、推理框架等基础概念的把握。模型权重通常以16位浮点存储,通过量化如Q4_K_M压缩到4bit左右,能显著降低显存占用与硬件门槛。Ollama、llama.cpp等工具让本地运行和API调用简化成一条命令;结合RAG技术,还能让开源模型直接读取私有文档,构建本地知识库。从Qwen、Llama到DeepSeek蒸馏版,不同参数量与量化等级直接影响生成速度与质量。本文基于RTX 4090与RTX 3060双机实测,覆盖主流开源模型的选

cuiji1279的博客 370

vc6.0垃圾文件清理工具_小白必备,mac系统垃圾清理工具分享

电脑系统垃圾太多,影响使用效率,有哪些好用的mac系统垃圾清理工具值得入手呢?小编整理的几款简单好用的分享给大家,需要的拿走~小白必备,mac系统垃圾清理工具分享MacCleanse for Mac(系统垃圾清理工具)一款好用的系统垃圾清理工具—“MacCleanse”。MacCleanse 8是Mac平台上优秀的系统维护工具,能够帮助用户正确卸载应用程序,捕获大量日志,缓存,插件和其他资源,而不...

weixin_39653764的博客 519
上一篇: fatal error C1047: The object or library file "..."was created with an older compiler than other obj
下一篇: 多线程中对COM的初始化CoInitialize应该注意的问题
疯狂-的-蜗牛
博客等级 码龄16年 427粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值