8

Я знаю, что программы, работающие с Windows, хранятся в реестре в (как HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER):

- /Software/Microsoft/Windows/CurrentVersion/Run
- /Software/Microsoft/Windows/CurrentVersion/RunOnce

Но когда я удаляю их записи здесь (или использую msconfig для отключения программ от автозапуска), где хранится информация об отключенных программах?

Я имею в виду программы, которые больше не работают с Windows, но в msconfig-> autorun они помечены как "отключенные".

3 ответа3

7

Посмотрите под:

\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run

должна быть одна соответствующая запись для каждой записи в:

\Software\Microsoft\Windows\CurrentVersion\Run

Это двоичное значение, «02 00 00 00 ...» означает «включено», любое другое значение означает «отключено».

Я исследовал это в Windows 8.1, но предположил, что раздел реестра такой же, как в Windows 7. Однако в 8.x вы отключаете автозапуск программ в «Диспетчере задач», а не в msconfig.

3

Если вы удалите их вручную через regedit, они исчезнут навсегда, если вы сначала не сделали резервную копию.

Если вы отключили их с помощью MSConfig, вы можете найти список отключенных реестров по адресу

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg

и отключенные записи запуска 1 в

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder .

Подразделы содержат необходимую информацию для восстановления отключенного ключа. Вы можете безопасно удалить найденные там ключи, но потом не сможете восстановить их через MSConfig.

Примечание: MSConfig не включает элементы из групповой политики или планировщика задач Windows 7!


1 Записи из папки автозагрузки пользователя (Пуск → Программы → Автозагрузка).

1

@ Питер Хандорф, это не правильно.

Win7 не имеет ключа запуска, утвержденного. Вместо этого он использует msconfig:

HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder

Win 8/10 StartupApproved также может содержать двоичное значение "06 00 00 00", что также означает "включено"! Я не знаю полного перечисления этих флагов, но кажется надежным способом проверить, включен он или нет - проверьте следующие 8 байтов, которые представляют структуру FILETIME. Если все байты равны нулю - запись включена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .