我需要以编程方式删除Internet Explorer 8历史记录,Cookie,缓存和密码
不止于此我需要默默地做:-(没有任何弹出窗口,所以我不能使用
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2
因为它正在启动进度窗口对话框。
我尝试使用startInfoParams
从CreateProcess函数运行它siStartupInfo.dwFlags = STARTF_USESHOWWINDOW;
siStartupInfo.wShowWindow = SW_HIDE;
但它没有帮助,因为它看起来像Inetcpl.cpl运行异步,并启动它自己的线程显示窗口。
有谁知道实现这个的方法?
感谢。
答案 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
的组合,或使用SHFileOperation
。 codeguru上有工作代码。