使用C#代码删除所有浏览器的浏览历史记录?

时间:2012-09-17 11:28:53

标签: c# windows winforms browser-cache browser-history

最近我对Windows应用程序感兴趣,目前正在进行一些基于Windows应用程序的编程。

现在我想创建一个Windows(桌面)应用程序,使用它我可以删除所有主要浏览器的历史记录(即chrome,firefox,safari,opera,ie)。其中我强调的是chrome和firefox。我已经实现了删除IE的浏览器历史记录的过程,因为它使用以下代码在Windows操作系统中内置了该功能

var p = new Process();
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "rundll32.exe";
p.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 1";
p.Start();
p.WaitForExit();

它工作正常。现在转到其他浏览器。

经过大量研究后,我发现了各种各样的东西。

  1. Chrome会将数据保存在SqlLite数据库中。因此,通过访问数据库,可以删除详细信息。我已根据此链接的想法进行了研究
  2. Programmatically acess Google chrome history

    我还了解到存储浏览器详细信息的各个地方是:

    对于Chrome:C:\ Users \\ AppData \ Local \ Google \ Chrome \ User Data

    对于FireFox:C:\ Users \\ AppData \ Local \ Mozilla \ Firefox \ Profiles和C:\ Users \\ AppData \ Roaming \ Mozilla \ Firefox \ Profiles

    对于Opera:C:\ Users \\ AppData \ Local \ Opera \ Opera和C:\ Users \\ AppData \ Roaming \ Opera \ Opera

    对于Safari:C:\ Users \\ AppData \ Local \ Apple Computer \ Safari和 C:\ Users \\ AppData \ Roaming \ Apple Computer \ Safari。

    现在我已经完成了一个简单的代码,通过删除上面描述的特定文件夹的内容,我可以删除所有浏览器的所有历史记录。

    虽然在全球范围内思考问题仍然很少。

    1. 在所有PC中,文件夹位置不在同一个位置。例如:在另一台PC中,Appdata文件夹丢失了。所以我无法让我的应用程序在其他系统上运行。

    2. 如果管理员登录了PC,那么找到Appdata文件夹也很困难。

    3. 如果用户使用Opera或Safari等便携式浏览器,会在哪里保存历史记录?

    4. 总而言之,这些问题我正在思考一种不同的方式。但我不确定应该遵循什么。?

      我发现CC Cleaner会删除所有浏览历史记录而不管它们保存的位置.CC Cleaner如何做到这一点?是否可以使用System注册表找到存储历史记录的位置?

      或者有没有更好的方法来清除所有浏览历史记录?

      总结一下,我不想访问appdata文件夹来删除浏览历史记录。还有其他选择吗?

      任何示例代码/链接都会有所帮助。

      感谢。

1 个答案:

答案 0 :(得分:1)

有很多方法可以阻止用户返回页面,但无法完全清除整个浏览历史记录。更不用说删除任何一个。如果你想删除那么你应该访问AppData&删除包含历史记录的文件夹。