Как программно манипулировать списком "Недавно использованных программ" в меню "Пуск"?

Я ищу способ заставить программы выглядеть (часто) используемыми, чтобы они появлялись в меню "Недавно использованные программы" в меню "Пуск" (после установки с нулевого прикосновения).

Я пытаюсь выяснить, как Windows хранит информацию, связанную с частотой использования программы.

Единственные (возможно) связанные с этим вещи, которые я вижу изменяющимися при запуске программы из меню "Пуск", - это некоторые (кажущиеся недокументированными) ключи реестра BagMRU, которые не имеют для меня никакого значения.

Я нашел способ закрепить программы, но это не то, что я здесь ищу.

Обновление: пожалуйста, смотрите комментарии для объяснения, почему я хотел бы сделать это...

Update2: я делаю успехи... Теперь я знаю, где хранятся ключи, и я знаю, что ключи ROT13 "зашифрованы". А вторые 4 байта значений являются счетчиком. http://blog.didierstevens.com/2006/07/24/rot13-is-used-in-windows-you%E2%80%99re-joking/

Эта штука с шифрованием ROT13(Википедия) забавная. Ну, конечно, есть причина. Они не хотят, чтобы вы могли найти его простым поиском.

Lol, и в Windows 7 они используют криптографию Vigenère! намного лучше:D

4 ответа

Решение

Риск снижения голосов, это не то, что вы должны делать. "Недавно использованные программы" принадлежат владельцу компьютера, а не вашей программе.

Если ваша программа настолько полезна, насколько вы думаете, она автоматически появится там.

Раймонд Чен написал немало статей о том, почему подобные вещи плохая идея.

Это относится ко всем тем другим плохим идеям, как:

  • Как я могу заставить мою программу быть обработчиком для определенных типов файлов?
  • Как я могу держать мою программу всегда на вершине.
  • Как я могу раздражать своих пользователей, принимая за них решения, если раньше у них была возможность самостоятельно принимать решения о том, как их программное обеспечение было настроено?:-)

Обновить:

Пара вещей, которые вы можете попробовать.

  • Скопируйте программу (explorer.exe) в axolotl.exe и запустите ее достаточное количество раз, чтобы получить ее в списке. Затем найдите его в реестре (при условии, что на вашем диске нет другого файла axolotl.exe). Имейте в виду, что некоторые строки хранятся в формате Unicode, поэтому это может быть не простой поиск. Меня также не удивит, если MS закодирует их каким-либо образом, чтобы сделать это более сложным.
  • Microsoft sysinternals имеет инструмент, который может контролировать реестр (regmon, посмотрите здесь, вы можете запустить его, запустив программу несколько раз, чтобы увидеть, что обновляется, когда она добавляется в список.

Используйте интерфейсы Win32 Shell COM
В течение десятилетий, как и для всех недокументированных функций, это объяснялось в группах Google (Win32) тем же способом, что и в W95.

Если это возможно, я рекомендую против этого. Это, как вы говорите, недокументированное поведение, которое позволяет обойти предполагаемое использование списка часто используемых программ. Что не так с иконкой на рабочем столе и ярлыком быстрого запуска?

Другие вопросы по тегам