清除WebBrowser控制浏览历史记录

问题描述 投票:3回答:2

我想在WebBrowser完成浏览后清除WebBrowser控件历史记录。

c# webbrowser-control browser-history
2个回答
1
投票

System.Windows.Forms.WebBrowse控件的历史状态是内部的,不能直接修改。所有操作都通过GoBackGoForward方法执行。

您可以通过将CanGoBackCanGoForward属性设置为false来阻止用户前后移动。您还需要修改AllowWebBrowserDropWebBrowserShortcutsEnabledIsWebBroserContextMenuEnabled属性。

由于历史记录仅通过这些方法,属性和用户操作公开,因此无需清除内部历史记录状态,因为用户无法对其进行操作。请注意,会话历史记录(即后退/前进按钮)是与“浏览器历史记录”(您在IE的“历史记录”面板中看到的内容)不同的概念。

请注意,其他程序中包含的WebBrowser实例可能会写入Windows用户的IE历史文件,但我不确定。如果他们这样做,我怀疑你能做些什么。


1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.