c# - 如何使用 C# 读取 Microsoft Edge 历史记录

标签 c# microsoft-edge

我想访问 Microsoft Edge 的历史记录,我应该怎么做? 根据我的研究,我们可以通过删除 %LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC 文件夹中以 # 开头的文件夹,以编程方式删除 Edge 的历史记录,但就我而言,我想阅读它们。

当我打开一个以#开头的文件夹,即#!001时,里面有很多子文件夹,我不知道该从哪里获取数据。在我的调查中,当我访问一个网站时,它似乎在临时文件夹中创建了一个 URLXXX.tmp 并且这个文件是加密的。那是我应该看的文件吗?另外,还有一些*.dat文件,有相关的吗?

最佳答案

是的,历史存储在 WebCacheV01.dat 文件中。它是一个 ESE 数据库(以前称为 Jet Blue)。微软提供了访问这个数据库的api。查找 JetOpenDatabase、JetAttachDatabase api。但是,此文件始终由名为 CacheTask 的任务使用(请参阅任务计划程序中的 Microsoft\Windows\WinInet 文件夹)。在访问此数据库之前,您需要停止此任务。然后立即再次开始此任务。因为另一个 COM 代理在几秒钟后启动 DllHost.exe (3EB3C877-1F16-487C-9050-104DBCD66683),这将阻止您访问 WebCacheV01.dat。所以你需要在上面的COM Surrogate启动之前完成阅读。 COM Surrogate 仅在 CacheTask 未运行时启动。因此,如果您立即重新启动 CacheTask,则 COM Surrogate 将不会启动。

更新:请注意,由于 Microsoft 已将旧版 Microsoft Edge 替换为基于 Chromium 的 Microsoft Edge,因此历史记录/书签文件格式与 Google Chrome 相同。它是一个 sqlite 数据库。使用 sqlite API 从该数据库访问数据相当容易。

关于c# - 如何使用 C# 读取 Microsoft Edge 历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49747766/

相关文章:

html - CSS 分词在 Microsoft edge 中无法正常工作

c# - log4net 上下文设置。如何将上下文传播到任务并行库生成的子线程

c# - 如何在 Asp.net C# 代码中删除之前在 JavaScript 弹出窗口中添加记录名称

html - 使用 border-radius 时 IE/Edge 中单元格之间的故障

html - IE 和 Edge 上的伪元素前后

html - 无法验证 HTML5 Boilerplate 元标记

javascript - Chrome bug asp.net updatepanel 发布两次

c# - 跳过并取 : An efficient approach to OFFSET LIMIT in EF 4. 1?

c# - 操作现有的 CSV 文件,同时保持列顺序。 (CsvReader/CsvWriter)

css - 在 "woff2"旁边查找 Google 字体的所有其他格式