Существует ли какое-либо приложение Windows, которое определит, какой процесс препятствует активизации заставки?
Существует ли какое-либо приложение Windows, которое определит, какой процесс препятствует активизации заставки?
Ответы:
PowerCFG встроен в Windows и позволяет вам контролировать и просматривать множество настроек управления питанием.
powercfg -energy -trace
Это создаст очень подробный журнал событий управления питанием energy-trace.etl. Откройте его с помощью средства просмотра событий и отфильтруйте журнал по источникам событий: Kernel-Power, включите идентификатор события: 62.
Это должно дать вам события, которые выглядят так:
Приложение или служба \ Device \ HarddiskVolume1 \ games \ Steam \ Steam.exe изменили настройки управления питанием пользователя с кодом 0x3.
Код может отличаться в зависимости от того, была ли предотвращена заставка, режим ожидания монитора или другой переход состояния.
Event Viewer
| Нажмите Event Viewer (Local)
в дереве | Action
| Open Saved Log
| открыть C:\Windows\System32\energytrace.etl
Скажите, чтобы преобразовать в новый формат журнала. Работает на windows 10.
Запустите powercfg /requests
из командной строки администратора. Например, мой напечатал:
DISPLAY:
[PROCESS] \Device\HarddiskVolume8\Games\Origin\Origin.exe
Playing video
SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0900&SUBSYS_10438560&REV_1000\4&9793a48&0&0001)
An audio stream is currently in use.
AWAYMODE:
None.
Что указывает на то, что Origin воспроизводил видео, и это мешало запуску заставки.
Иногда просто изменив время на заставке (не на тип) на что-то другое, скажем, от 10 минут до 1, а затем вернувшись к тому, что было раньше, заставка будет работать нормально.
Спасибо W1N9Zr0 за то, что он указал мне правильное направление!
В моем случае это была машина XP Pro (SP3), поэтому переключатель «энергия» был недоступен. Однако переключатель «запрос устройства» указывал, что это была либо мышь, либо клавиатура. Как только я переключился с клавиатуры PS / 2, которую я использовал, на клавиатуру USB, экранная заставка (и другие параметры питания) активировались в соответствии с настройками.
ПРИМЕЧАНИЕ. Когда экранная заставка была настроена на 1 минуту, она иногда включалась, поэтому я знал, что она работает. Что-нибудь выше 1 минуты, и заставка никогда не сработает.
Я считаю, что виновником, как правило, является медиаплеер. Вы могли бы подумать, что это будет только при воспроизведении видео, но у меня были некоторые музыкальные плееры, которые не включали заставку. Например, у меня сегодня были открыты и приостановлены Amazon Music и Groove, и я обнаружил, что мой экран все еще разблокирован через час.
Я не уверен, кто виноват, но я подозреваю их из-за IDE и браузера, который я запускал, оба из которых позволяют блокировать экран.
Я не знаю ни одной программы, которая делает это, но способ узнать это через функцию GetThreadExecutionState (), которая будет содержать значение ES_DISPLAY_REQUIRED, если поток в настоящее время блокирует активацию заставки.
Если вы примените эту функцию ко всем потокам в системе и затем вызовете GetProcessIdOfThread в найденном вами потоке, вы обнаружите процесс, блокирующий экранную заставку.