Как программно манипулировать списком "Недавно использованных программ" в меню "Пуск"?
Я ищу способ заставить программы выглядеть (часто) используемыми, чтобы они появлялись в меню "Недавно использованные программы" в меню "Пуск" (после установки с нулевого прикосновения).
Я пытаюсь выяснить, как 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 ответа
Я нашел то, что искал здесь:
http://blog.didierstevens.com/2006/07/24/rot13-is-used-in-windows-you%E2%80%99re-joking/
Риск снижения голосов, это не то, что вы должны делать. "Недавно использованные программы" принадлежат владельцу компьютера, а не вашей программе.
Если ваша программа настолько полезна, насколько вы думаете, она автоматически появится там.
Раймонд Чен написал немало статей о том, почему подобные вещи плохая идея.
Это относится ко всем тем другим плохим идеям, как:
- Как я могу заставить мою программу быть обработчиком для определенных типов файлов?
- Как я могу держать мою программу всегда на вершине.
- Как я могу раздражать своих пользователей, принимая за них решения, если раньше у них была возможность самостоятельно принимать решения о том, как их программное обеспечение было настроено?:-)
Обновить:
Пара вещей, которые вы можете попробовать.
- Скопируйте программу (explorer.exe) в axolotl.exe и запустите ее достаточное количество раз, чтобы получить ее в списке. Затем найдите его в реестре (при условии, что на вашем диске нет другого файла axolotl.exe). Имейте в виду, что некоторые строки хранятся в формате Unicode, поэтому это может быть не простой поиск. Меня также не удивит, если MS закодирует их каким-либо образом, чтобы сделать это более сложным.
- Microsoft sysinternals имеет инструмент, который может контролировать реестр (regmon, посмотрите здесь, вы можете запустить его, запустив программу несколько раз, чтобы увидеть, что обновляется, когда она добавляется в список.
Используйте интерфейсы Win32 Shell COM
В течение десятилетий, как и для всех недокументированных функций, это объяснялось в группах Google (Win32) тем же способом, что и в W95.
Если это возможно, я рекомендую против этого. Это, как вы говорите, недокументированное поведение, которое позволяет обойти предполагаемое использование списка часто используемых программ. Что не так с иконкой на рабочем столе и ярлыком быстрого запуска?