3

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

4

1 回答 1

3

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

Raymond Chen 在他的博客文章中非常清楚地描述了这一点,“为什么没有对开始菜单 pin 列表的编程访问?” . 它谈到了 Windows XP 上的另一个问题,但我认为这个故事的寓意也适用于此,即这些信息太容易被滥用,因此没有可用的公共 API。Stackoverflow 也有一个直接解决 MFU 列表的问题(请参阅此问题),答案是您不应该这样做。

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

于 2015-04-08T00:35:11.247 回答