15

Существует ли какое-либо приложение Windows, которое определит, какой процесс препятствует активизации заставки?

6 ответов6

12

PowerCFG встроен в Windows и позволяет вам контролировать и просматривать множество настроек управления питанием.

powercfg -energy -trace

Это создаст очень подробный журнал событий управления питанием energy-trace.etl. Откройте его с помощью средства просмотра событий и отфильтруйте журнал по источникам событий: Kernel-Power, включите идентификатор события: 62.

Это должно дать вам события, которые выглядят так:

Приложение или служба \Device \HarddiskVolume1 \games \Steam \Steam.exe изменили параметры управления питанием пользователя с кодом 0x3.

Код может отличаться в зависимости от того, была ли предотвращена заставка, режим ожидания монитора или другой переход состояния.

4

Запустите 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 воспроизводил видео, и это мешало запуску заставки.

1

Иногда просто изменив время на заставке (не на тип) на что-то другое, скажем, от 10 минут до 1, а затем вернувшись к тому, что у вас было раньше, заставка будет работать нормально.

1

Спасибо W1N9Zr0 за то, что он указал мне правильное направление!

В моем случае это была машина XP Pro (SP3), поэтому переключатель "энергия" был недоступен. Однако переключатель "запрос устройства" указывал, что это была либо мышь, либо клавиатура. Как только я переключился с клавиатуры PS/2, которую я использовал, на клавиатуру USB, экранная заставка (и другие параметры питания) активировались в соответствии с настройками.

ПРИМЕЧАНИЕ. Когда экранная заставка была настроена на 1 минуту, она иногда включалась, поэтому я знал, что она работает. Что-нибудь выше 1 минуты, и заставка никогда не сработает.

0

Я считаю, что виновником, как правило, является медиаплеер. Вы могли бы подумать, что это будет только при воспроизведении видео, но у меня были некоторые музыкальные плееры, которые не использовали экранную заставку. Например, сегодня у меня были открыты и приостановлены Amazon Music и Groove, и я обнаружил, что мой экран все еще разблокирован через час.

Я не уверен, кто виноват, но я подозреваю их из-за IDE и браузера, который я запускал, оба из которых позволяют блокировать экран.

-2

Я не знаю ни одной программы, которая делает это, но способ узнать это с помощью функции GetThreadExecutionState(), которая будет содержать значение ES_DISPLAY_REQUIRED, если поток в настоящее время блокирует активацию заставки.

Если вы примените эту функцию ко всем потокам в системе и затем вызовете GetProcessIdOfThread в найденном вами потоке, вы обнаружите процесс, который блокирует экранную заставку.

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