使用C ++删除Internet Explorer 8历史记录,Cookie,缓存和密码

时间:2012-03-28 16:20:41

标签: c++ internet-explorer cookies browser-cache

我需要以编程方式删除Internet Explorer 8历史记录,Cookie,缓存和密码

不止于此我需要默默地做:-(没有任何弹出窗口,所以我不能使用

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2

因为它正在启动进度窗口对话框。

我尝试使用startInfoParams

从CreateProcess函数运行它
siStartupInfo.dwFlags = STARTF_USESHOWWINDOW;
siStartupInfo.wShowWindow = SW_HIDE;

但它没有帮助,因为它看起来像Inetcpl.cpl运行异步,并启动它自己的线程显示窗口。

有谁知道实现这个的方法?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用FindFirstUrlCacheEntry()FindNextUrlCacheEntry()DeleteUrlCacheEntry()从Temporary Internet Files缓存中删除网址和文件。

您可以使用FindFirstUrlCacheEntryEx()FindNextUrlCacheEntryEx()枚举缓存,历史记录和Cookie条目,但DeleteUrlCacheEntry()仅适用于缓存条目。我不知道从历史记录和Cookie中删除条目的正确方法。如果存在DeleteFile()结构中报告的文件名,您可能只能调用INTERNET_CACHE_ENTRY_INFO。或者也许使用InternetSetCookie/Ex()用新的时间戳覆盖现有的cookie数据。

我不知道是否可以可编程地操作密码列表。

答案 1 :(得分:0)

您可以手动删除TemporaryInternetFiles和类似目录中的所有文件。只需找出您要删除的内容。要删除整个非空目录,请使用FindNextFile / DeleteFile / DeleteDirectory的组合,或使用SHFileOperationcodeguru上有工作代码。