2012-08-30 96 views
3

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

+0

什么历史是你想清除存储的文件和设置?你的访客?如果是这样,我相当确信这是不可能的。如果你试图清除你自己的,为什么不使用隐私浏览(可用int FF,Chrome和Safari - 不知道有关IE)。 – CoderMarkus

+0

我已经在visual studio c#/ .net中创建了简单的webbrowsing应用程序。我想清除我的应用程序的历史记录,我将浏览使用我的应用程序浏览历史记录将占用空间,所以我想在浏览后清除它 –

+0

您将如何做,取决于您如何实现HTML显示。您是使用嵌入式IE控件还是什么? –

回答

8

Temporary Internet Files文件

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

饼干()

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") 
+0

这看起来非常类似于[这个答案](http://stackoverflow.com/a/11965922/5174469)...;) –

+0

谢谢......想知道如何安全地允许导航而不保存数据。 –

1

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

通过将CanGoBackCanGoForward属性设置为false,可以防止用户往回移动。您还需要修改AllowWebBrowserDropWebBrowserShortcutsEnabledIsWebBroserContextMenuEnabled属性。

因为历史只是通过这些方法,属性和用户操作暴露出来的,所以不需要清除内部历史状态,因为用户无法对其进行操作。请注意,会话历史记录(即后退/前进按钮)与“浏览器历史记录”(您在IE中的历史记录面板中看到的内容)是分离的概念。

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

1

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

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

对于FindFirst/NextUrlCacheEntry和DeleteUrlCacheEntry信息,可以使用联机预写代码,然后创建筛选器以便确定在循环访问这些缓存时要删除哪些项目条目。

让我知道我是否可以得到进一步的帮助。

+0

Hiya @Erx你能提供一些实际的代码吗?也许是一个URL? –