Я заметил, что когда я запускаю Windows Media Player на своем ноутбуке, заставка не запускается и, что более важно, мой компьютер не переходит в спящий режим или режим гибернации. Однако при запуске iTunes или других приложений, если вы не будете двигать мышью или нажимать клавишу на клавиатуре, ваш компьютер в конечном итоге перейдет в спящий режим или режим гибернации. Я хочу написать небольшое приложение, которое не позволит моему компьютеру перейти в спящий режим или режим гибернации. У кого-нибудь есть идеи, как это можно сделать?
3 ответа
Для приложения - вы можете посмотреть на win32 функцию SetThreadExecutionState
В любом случае, вы можете установить другую схему питания на панели управления Windows, чтобы компьютер не спал все время.
У вас есть несколько событий, чтобы справиться с этим. Сначала обработайте сообщение WM_SYSCOMMAND, в частности параметры SC_SCREENSAVE и SC_MONITORPOWER. Во-вторых, обработайте сообщение WM_POWERBROADCAST и верните BROADCAST_QUERY_DENY.
Однако MS решила разрешить системе игнорировать BROADCAST_QUERY_DENY, чтобы она работала только там, где это разрешено, обычно в настройках пользователя. Слишком много приложений предотвращали отключение питания, так как эта функция была фактически избыточной.
Skizz
Посмотрите на бессонницу, которая, если я правильно понимаю, это именно то приложение, которое вы хотите. Обратите внимание, что доступен как двоичный, так и исходный код, поэтому, если вы предпочитаете свернуть свой собственный, вы можете использовать его в качестве отправной точки.