【问题标题】:Windows Mobile Internet Explorer HistoryWindows Mobile Internet Explorer 历史
【发布时间】:2011-08-25 02:39:03
【问题描述】:

如何在 Compact Framework 1.0 上运行的 C# 中获取 Internet Explorer 在 Windows Mobile 5.0 上的历史记录?我只需要获取最近访问的 URL。即使你只知道它的存储位置,我也可以从那里找出其余部分。

【问题讨论】:

    标签: c# internet-explorer windows-mobile compact-framework browser-history


    【解决方案1】:

    如果它存储在注册表中(我不是说它是,但它是一个合理的调查位置),那么通过以下步骤很容易找到它:

    • 将远程注册表编辑器附加到设备/模拟器
    • 将整个注册表导出到您 PC 上的文件中
    • 使用设备上的浏览器生成更多历史记录
    • 再次将整个注册表导出到您 PC 上的文件中
    • 使用您最喜欢的 DIFF 程序比较两个注册表转储

    如果历史记录存储在注册表中,它将作为文件之间的唯一更改快速出现。

    【讨论】:

      【解决方案2】:

      它通常应该存储在 '\windows\profiles\guest\History*'

      不过,最好使用以下方法从注册表中检索此位置:

      using Microsoft.Win32;
      
      RegistryKey foldersKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders");
      string historyFolder = foldersKey.GetValue("History");
      

      【讨论】:

      • 当我查看注册表中的那个位置时,它确实显示了那个文件路径。实际的历史数据似乎在“/Windows/Profiles/guest/History/History.IE5/index.dat”中。但是当我尝试在 C# 中打开或复制该文件时,我得到一个通用的 IOException。尽管我在运行此代码之前确保 IE 已完全关闭。
      • 这是我使用的代码,它给了我一个带有“IOException”消息的通用 IOException: File.OpenRead("Windows/Profiles/guest/History/History.IE5/index.dat") ;
      • 我尝试在 CF 3.5 上运行它,看看是否会得到更好的错误消息。它说该文件正在被另一个进程使用。我尝试重新启动设备,现在我可以从文件中读取。我会看看我是否可以从我的代码中关闭其他进程,以便我可以在需要时从这个文件中读取。
      • 不确定这是否有帮助,但可能值得研究:coding.infoconex.com/post/2009/04/…
      • 我无法确定文件的格式。我找到了比研究历史更好的方法来完成我想做的事情。我会将其标记为答案,即使您实际上如何从文件中获取历史记录不完整。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      相关资源
      最近更新 更多