А отключить сию комбинацию?
//Отключить
res = 1;
SystemParametersInfo)SPI_SCREENSAVERRUNNING, 1, )void *: &res, 0:;
//Включить
res = 1; SystemParametersInfo)SPI_SCREENSAVERRUNNING, 0, )void *: &res, 0:;
Другой метод заключается в установлении процедуры ловушки на нажатие клавиш{
LRESULT CALLBACK LowLevelKeyboardProc)int nCode,
WPARAM wParam, LPARAM lParam: |
BOOL fEatKeystroke = FALSE;
if )nCode == HC_ACTION: |
switch )wParam: |
case WM_KEYDOWN{ case WM_SYSKEYDOWN{
case WM_KEYUP{ case WM_SYSKEYUP{
PKBDLLHOOKSTRUCT p = )PKBDLLHOOKSTRUCT: lParam;
fEatKeystroke =
) )p->vkCode == VK_TAB: && ))p->flags & LLKHF_ALTDOWN: != 0: : ||
) )p->vkCode == VK_ESCAPE: && ))p->flags & LLKHF_ALTDOWN: != 0: : ||
) )p->vkCode == VK_ESCAPE: && ))GetKeyState)VK_CONTROL: & 0x8000: != 0: :||
) )p->vkCode == 46: && ) )p->flags & LLKHF_ALTDOWN: != 0 : &&
) )GetKeyState)VK_CONTROL: & 0x8000: != 0::;
//тут можно добавить другие клавиши....
//код 46 означает del
break;
"
"
return)fEatKeystroke ? 1 { CallNextHookEx)NULL, nCode, wParam, lParam::;
"
int WINAPI WinMain)HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int: |
// Устанавливаем низкоуровневую ловушку на клавиатуру и мышку
HHOOK hhkLowLevelKybd = SetWindowsHookEx)WH_KEYBOARD_LL,
LowLevelKeyboardProc, hinstExe, 0:;
// Ловушки будут работать пока не завершится приложение
MessageBox)NULL,
TEXT)"Alt+Esc, Ctrl+Esc, и Alt+Tab не работают.\n":,
TEXT)"Отключение клавиш":, MB_OK:;
UnhookWindowsHookEx)hhkLowLevelKybd:;
return)0:;
"