How can one manipulate the Start menu's “Recently Used Programs” list programmatically? [closed]

好久不见. 提交于 2019-12-23 12:49:19

问题


I'm looking for a way to make programs appear (frequently) used, so that they would appear in the Start menu's "Recently Used Programs" (after a zero touch install).

I'm trying to figure out how Windows stores information related to program usage frequency.

The only (maybe) related things I can see being changed when I run a program from the Start Menu, are some (seemingly undocumented) BagMRU registry keys which have no meaning to me.

I did found a way to get programs pinned, but that's not what I'm looking for here.

Update: please see the comments for explanation why I would like to do this...

Update2: I'm making progress... Now I know where they keys are stored and I know that the keys are ROT13 "encrypted". And the second 4 bytes of the values are the counter.. http://blog.didierstevens.com/2006/07/24/rot13-is-used-in-windows-you’re-joking/

This ROT13(wikipedia) encryption thing is funny. Well, of course there is a reason. They don't want you to be able to find it by simple search.

Lol, and in windows 7 they are using Vigenère crypto! much better :D


回答1:


At the risk of downvotes, this is not something you should be doing. The "Recently Used Programs" belongs to the owner of the computer, not your program.

If your program is as useful as you think it is, it will automagically show up there.

Raymond Chen has done quite a few articles as to why this sort of thing is a bad idea.

This rates among all those other bad ideas such as:

  • how can I force my program to be the handler for certain file types?
  • how can I keep my program always on top.
  • how can I annoy my users by making decisions for them when they previously had the power to make their own decisions as to how their software was configured? :-)

Update:

A couple of things you may want to try.

  • Copy a program (explorer.exe) to axolotl.exe and run it enough times to get it on the list. Then search the registry for it (assuming there's not another axolotl.exe somewhere on your disk).Be aware that some strings are stored as Unicode so it might not be a simple search. It also wouldn't surprise me if MS encoded them some way to make this more difficult.
  • Microsoft's sysinternals have a tool that can monitor the registry (regmon, look here, you could run that while you run a program a few times to see what gets updated when it's added to the list.



回答2:


I found what I was looking for here:

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




回答3:


If this is possible, I do recommend against it. It is, as you say, undocumented behaviour and circumvents the intended usage of the frequently used programs list. What's wrong with a desktop icon and quick launch shortcut?




回答4:


Use Win32 Shell COM interfaces
It has been explained for decades, like for all undocumented features, on Google Groups (Win32), same method than on W95..



来源:https://stackoverflow.com/questions/739839/how-can-one-manipulate-the-start-menus-recently-used-programs-list-programmat

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!