Windows 8.1开始菜单提供了可按最常用的方式排序的应用程序列表(Windows按钮>向下箭头>应用程序:最常用)。有没有办法以编程方式在C#中按此顺序获取这些应用程序的列表?如果不按此顺序,至少是Windows 8.1开始菜单中显示的最常用和/或适度使用的应用程序列表?
答案 0 :(得分:2)
答案可能是肯定的,你可以,虽然它不推荐(也不容易)。
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。