SYSTEM_POWER_POLICY spp;
memset(&spp, 0, sizeof(spp));
if (!CallNtPowerInformation(SystemPowerPolicyAc, 0, sizeof(spp), &spp, sizeof(spp)))
{
spp.SleepButton.EventCode = POWER_FORCE_TRIGGER_RESET;
spp.SleepButton.Action = PowerActionNone;
spp.PowerButton.EventCode = POWER_FORCE_TRIGGER_RESET;
spp.PowerButton.Action = PowerActionNone;
CallNtPowerInformation(SystemPowerPolicyAc, &spp, sizeof(spp), &spp, sizeof(spp));
}
if (!CallNtPowerInformation(SystemPowerPolicyDc, 0, sizeof(spp), &spp, sizeof(spp)))
{
spp.SleepButton.EventCode = POWER_FORCE_TRIGGER_RESET;
spp.SleepButton.Action = PowerActionNone;
spp.PowerButton.EventCode = POWER_FORCE_TRIGGER_RESET;
spp.PowerButton.Action = PowerActionNone;
CallNtPowerInformation(SystemPowerPolicyDc, &spp, sizeof(spp), &spp, sizeof(spp));
}
Отмена завершения работы Windows
Заранее спасибо.
Обработать сообщение WM_QUERYENDSESSION.
Спасибо
Часть приложений успевает завершиться.
Есть ли способ этого недопустить?
(добавлено) эта функция и это сообщение восприпятствуют автомат. переходу в ждущий режим, а вот при принудительном вроде нет.
Вообще то мне нужно только заблокировать управление пританием с клавиатуры. Может есть для этого специальный способ?
Отключаются они след. образом.
В XP. Свойства экрана -> Заставка -> Питание... -> Дополнительно (примерно так, точно не помню, завтра могу точнее сказать)
В Vista. Панель управления -> Электропитание -> "Укажите действия кнопок питания" (точно не уверен, под вистой такой клавы у меня не было :) )
А мне нужно программно. Пишу программу блокировки клавиатуры (уже блокирует все кнопки кроме alt+ctrl+del и мышь). Хочу заблокировать и кнопки управления питанием.
Видимо необходимо писать драйвер либо отключать эти кнопки на время блокировки через реестр.
А какие ключи реестра этим управляют? какие надо поместить в них значения?
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DisableCAD"=dword:00000001
disable shutdown command
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoClose"=dword:00000001
disable standby
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters]
"AMLIMaxCTObjs"=hex:04,00,00,00
"Attributes"=dword:00000070
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\WakeUp]
"FixedEventMask"=hex:20,05
"FixedEventStatus"=hex:00,84
"GenericEventMask"=hex:18,50,00,10
"GenericEventStatus"=hex:10,00,ff,00
Цитата: KIV
А какие ключи реестра этим управляют? какие надо поместить в них значения?
Вот этот код отключает действия кнопок.
Код:
А как вновь включить эти кнопки? Мне нужна лишь временная блокировка.
Ну,наверное,сначала сохранить предыдущие значения,а потом восстановить их,не так ли!?:)