【问题标题】:Clear WebBrowser control browsing history清除 WebBrowser 控件浏览历史记录
【发布时间】:2012-08-25 05:46:51
【问题描述】:

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

【问题讨论】:

  • 您要清除什么历史记录?你的访客?如果是这样,我相当肯定这是不可能的。如果你想自己清除,为什么不直接使用隐私浏览(可用 int FF、Chrome 和 Safari - 不确定 IE)。
  • 我在 Visual Studio c#/.net 中创建了简单的网页浏览应用程序。我想清除我的应用程序的历史记录我将使用我的应用程序浏览浏览历史记录会占用空间所以我想在浏览后清除它
  • 如何做取决于您如何实现 HTML 显示。你使用的是嵌入式 IE 控件还是什么?
  • 很难看出这里要问什么。您是说通过 ITravelLogStg 删除 webbrowser 控件中的导航日志,通过 IUrlHistoryStg 从全局 url 历史记录中删除 URL,还是通过 DeleteUrlCacheEntry 从 WinInet 缓存中删除文件?

标签: c# webbrowser-control browser-history


【解决方案1】:

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

您可以通过将CanGoBack 和CanGoForward 属性设置为false 来防止用户前后移动。您还需要修改AllowWebBrowserDrop、WebBrowserShortcutsEnabled 和IsWebBroserContextMenuEnabled 属性。

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

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

【讨论】:

    【解决方案2】:

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

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

    对于 FindFirst/NextUrlCacheEntry 和 DeleteUrlCacheEntry 信息,网上有预先写好的代码可以使用,然后你可以很容易地创建一个过滤器来决定你在循环这些缓存条目时要删除哪些项目.

    如果我能提供进一步的帮助,请告诉我。

    【讨论】:

    • 嗨@Erx 你能提供一些实际的代码吗?也许是一个网址?
    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2012-08-14
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    相关资源
    最近更新 更多