【问题标题】:Programmatically access most frequently used apps in Windows 8.1以编程方式访问 Windows 8.1 中最常用的应用程序
【发布时间】:2015-04-08 08:35:11
【问题描述】:

Windows 8.1 开始菜单提供可按最常用排序的应用列表(Windows 按钮 > 向下箭头 > 应用:按最常用)。有没有办法在 C# 中以编程方式按此顺序获取这些应用程序的列表?如果不是按此顺序排列,是否至少列出了 Windows 8.1 开始菜单中显示的最常用和/或中度使用的应用程序?

【问题讨论】:

    标签: c# windows-8.1 mru


    【解决方案1】:

    答案可能是肯定的,你可以,虽然不推荐(也不容易)。

    Raymond Chen 在他的博文"Why is there no programmatic access to the Start menu pin list?" 中非常清楚地描述了这一点。它谈到了 Windows XP 上的另一个问题,但我认为这个故事的寓意也适用于此,即这些信息太容易被滥用,因此没有可用的公共 API。 Stackoverflow 也有一个直接解决 MFU 列表的问题(请参阅this question),答案是您不应该这样做。

    问题是,您看到的 MFU 列表存储在注册表的 UserAssist 部分中,并且其值是加密的(以前是 ROT13,但我不知道 8.1)。 Didier Stevens 编写了一个用于解密这些值的 GUI(请参阅 blog post),但自 8.1 发布以来它一直没有更新。对于它的价值,作者已经包含了源代码,但它是针对旧版本的。如果您可以进行密码分析,您可能可以扩展他的代码以使其支持 8.1。

    【讨论】:

    • 感谢您的回答。看起来它也是 Windows 8.1 中的 ROT13,Stevens 的应用程序解密了所有注册表项。我设法从条目的二进制数据中解密了一个 long ,它似乎跟踪了进程处于活动状态的时间长度,但是将这些 long 值相互比较以用于 MFU 程序似乎与Windows 8.1 的开始屏幕中的排序顺序。总而言之,这似乎最终将是一个失败的事业,而且太麻烦了,不值得。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    相关资源
    最近更新 更多