4

我正在寻找一种使程序出现(经常)使用的方法,以便它们出现在“开始”菜单的“最近使用的程序”中(在零触摸安装之后)。

我试图弄清楚 Windows 如何存储与程序使用频率相关的信息。

当我从“开始”菜单运行程序时,我可以看到的唯一(可能)相关的事情是一些(似乎没有记录的)BagMRU 注册表项,这些注册表项对我没有任何意义。

我确实找到了一种固定程序的方法,但这不是我在这里寻找的。

更新:请参阅评论以解释我为什么要这样做......

更新2:我正在取得进展......现在我知道它们的密钥存储在哪里,并且我知道这些密钥是ROT13 “加密”的。值的第二个 4 字节是计数器.. http://blog.didierstevens.com/2006/07/24/rot13-is-used-in-windows-you're-joking/

这个ROT13维基百科加密的东西很有趣。嗯,当然是有原因的。他们不希望您能够通过简单的搜索找到它。

大声笑,在 Windows 7 中,他们正在使用 Vigenère 加密!好多了:D

4

4 回答 4

14

冒着被否决的风险,这不是你应该做的事情。“最近使用的程序”属于计算机的所有者,而不是您的程序。

如果你的程序和你想象的一样有用,它会自动出现在那里。

Raymond Chen 写了很多文章来解释为什么这种事情是个坏主意。

这在所有其他坏主意中占了上风,例如:

  • 如何强制我的程序成为某些文件类型的处理程序?
  • 我怎样才能让我的程序始终处于领先地位。
  • 当他们以前有权自行决定如何配置他们的软件时,我怎么能通过为他们做决定来惹恼我的用户?:-)

更新:

您可能想尝试几件事。

  • 将程序 (explorer.exe) 复制到 axolotl.exe 并运行它足够的次数以将其列入列表。然后在注册表中搜索它(假设您的磁盘上没有另一个 axolotl.exe)。请注意,某些字符串存储为 Unicode,因此可能不是简单的搜索。如果 MS 以某种方式对它们进行编码以使其变得更加困难,我也不会感到惊讶。
  • 微软的 sysinternals 有一个可以监控注册表的工具(regmon,看这里,你可以在运行一个程序几次的同时运行它,看看它添加到列表中时会更新什么。
于 2009-04-11T10:41:52.467 回答
4

我在这里找到了我想要的东西:

http://blog.didierstevens.com/2006/07/24/rot13-is-used-in-windows-you're-joking/

于 2009-04-15T15:55:40.213 回答
0

如果这是可能的,我建议不要这样做。正如您所说,这是未记录的行为,并规避了常用程序列表的预期用途。桌面图标和快速启动快捷方式有什么问题?

于 2009-04-11T10:45:00.510 回答
0

使用 Win32 Shell COM 接口
它已经解释了几十年,就像所有未记录的功能一样,在 Google Groups (Win32) 上,与 W95 上的方法相同。

于 2009-04-12T06:07:30.403 回答