如何在C#中使用WebBrowser控件清除浏览历史记录

我希望在WebBrowser完成浏览后清除C#中WebBrowser控件的浏览历史记录。

这是我的代码:

 try { foreach (string sr in File.ReadAllLines("link.txt")) { webBrowser1.Navigate(sr); webBrowser1.ScriptErrorsSuppressed = true; } while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } } catch(Exception) { MessageBox.Show("Internet Connection not found","Error",MessageBoxButtons.OK,MessageBoxIcon.Error); this.Close(); } 

临时网络文件

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 8") 

cookies()

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 2") 

历史()

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 1") 

表(数据)

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 16") 

密码

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 32") 

删除所有)

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255") 

全部删除 – 同时删除加载项存储的文件和设置

 System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 4351") 

实际上,有两种类型的历史。 一个是“访问过的”页面列表,另一个是您在IE的历史用户界面中看到的实际历史记录。

你会得到3种类型的缓存,从“Cookie:”开始,另一种以“Visited:”开头 – 它只代表访问过的网站列表(它不是历史,不要混淆两者),最后一个type只是以url开头的forms,以http://或https://开头。 循环完成后,您可以选择要删除的项目。

如果要删除访问的页面列表,则需要使用DeleteUrlCacheEntry删除每个项目。 通过使用FindFirst / NextUrlCacheEntry API循环,您可以访问这些项目的创建时间和日期,因此只删除浏览器会话开始后和完成之前创建的项目。

对于FindFirst / NextUrlCacheEntry和DeleteUrlCacheEntry信息,您可以使用在线预编写的代码,然后在循环浏览这些缓存条目时,您可以轻松创建filter以确定要删除的项目。

如果我能得到进一步的帮助,请告诉我。