В настоящее время я работаю над программой, чтобы немедленно очистить список ранее выполненных команд, который появляется в диалоговом окне Windows Пуск -> Запуск . Процедура очистки этого списка путем удаления ключа HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ RunMRU хорошо документирована ; однако, прежде чем эти изменения вступят в силу, необходимо выполнить одно из следующих действий:
- Перезагрузите компьютер
- Выберите Пуск -> Выключите , а затем выберите Отмена .
Ни один из них не идеален для задачи, которую я пытаюсь выполнить: # 1 чрезвычайно разрушителен для пользователя, а # 2, кажется, требует дополнительного взаимодействия с пользователем.
Кто-нибудь знает, как немедленно (и программно) принудительно перезагрузить эту информацию, не требуя какого-либо взаимодействия с пользователем, , одновременно минимизируя нарушение других действий пользователя ? Я бы хотел, чтобы история выполнения пользователя очищалась сразу после выполнения моей программы, без , требующей каких-либо дальнейших действий с их стороны (например, с помощью трюка «Завершение работы» -> «Отмена»). в # 2 выше) или принудительная перезагрузка.
Или, чтобы подойти к проблеме под другим углом: при нажатии Пуск -> Завершение работы -> Отмена , проводник Windows перезагружает ключ RunMUI. Есть ли способ принудительно выполнить такую же перезагрузку, если пользователь не выберет Завершение работы , а затем Отмена ?
Вещи, которые я уже пробовал:
- Отслеживание состояния explorer.exe с помощью procmon при выборе Завершение работы и затем Отмена . Я вижу, что Проводник пишет в ключ RunMRU, но не смог определить, что вызывает это.
- Многочисленные поиски Google в духе "перезагрузить runmru без перезагрузки". Большинство результатов по-прежнему рекомендуют метод № 1 выше, хотя некоторые предлагают № 2.
- Ограниченная проверка MSDN API. Вызов RegFlushKey выглядит многообещающим, но я никогда не использовал его раньше, поэтому я не знаю, будет ли он применяться к информации реестра, кэшируемой различными процессами.
Любые предложения или другая информация будет принята с благодарностью.