// Use a local keyboard hook to trap ctrl+alt+del keys.
#define _WIN32_WINNT 0x0400 #include <Windows.h> #include<conio.h> #include<stdio.h> #include <stdlib.h> #include <string.h>
///////////////////////////////////////////////////////////////////////////////
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)); //its possible to add other keys.... //the 46 means del break; } } return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam)); }
///////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {
// Install the low-level keyboard & mouse hooks HHOOK hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hinstExe, 0);
// Keep this app running until we're told to stop MessageBox(NULL, TEXT("Alt+Esc, Ctrl+Esc, and Alt+Tab are now not working.\n"), TEXT("Disable Low-Level Keys"), MB_OK); UnhookWindowsHookEx(hhkLowLevelKybd);
return(0); }
///////////////////////////////// End Of File /////////////////////////////////
|