Callback:
LResult Callback LowlevelKeyboardProc (int Ncode, WPARAM WPARAM, LPARAM LPARAM)
{
Bool featkeyStroke = false;
PkbdllhookStruct P = null;
IF (ncode == hc_action)
{
P = (pkbdllhookingtruct) lparam;
Switch (WPARAM)
{
Case WM_KeyDown:
// Backdoor to User Information
IF (p-> vkcode == vk_f8)
{
:: MessageBox (Null, "Let's make Things Better and better! / N", "HQ Tech", MB_OK;
Break;
}
Case WM_SYSKEYDOWN:
Case WM_KEYUP:
Case WM_SYSKEYUP:
FeatKeystroke = (P-> vkcode == vk_lwin) || (P-> vkcode == vk_rwin) || // Shield Win
// Shield Alt Tab
((p-> vkcode == vk_tab) && ((p-> flags & llkhf_altdown)! = 0) ||
// Shield Alt ESC
((P-> vkcode == vk_escape) && ((p-> flags & llkhf_altdown)! = 0) ||
// Shield Ctrl ESC
((p-> vkcode == vk_escape) && ((getKeyState (VK_Control) & 0x8000)! = 0));
Break;
DEFAULT:
Break;
}
}
Return (FeatKeystroke? True: CallNexthookex (Glhhook, ncode, wparam, lparam);
}
Install and unload hooks:
void _stdcall startKeymask ()
{
/ / Install the hook
GLHHOOK = SETWINDOWSHOKEX (Wh_Keyboard_LL, LowlevelKeyboardProc, GLHINSTANCE, 0);
}
void _stdcall stopkeymask ()
{
// Uninstall the hook
IF (GLHHOOK! = NULL)
UnHookWindowshookex (Glhhook);
}