屏蔽系统热键 除 Ctrl + Alt + Del 之外 |
|
kkk_731
一般會員 發表:7 回覆:4 積分:2 註冊:2008-03-13 發送簡訊給我 |
方法 比较彻底,除 Ctrl Alt Del 之外全被屏蔽。 在程序中设置如下全局变量和全局函数: // 钩子句柄 HHOOK OldHook; long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam) { KBDLLHOOKSTRUCT *pkbhs; if (code < 0) { return CallNextHookEx(OldHook, code, wParam, lParam); } pkbhs = (KBDLLHOOKSTRUCT*) lParam; if (pkbhs->vkCode == 91 || pkbhs->vkCode == VK_RWIN)//封锁 win 键 { return 1; } if (pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL) < 0) { return 1; //封锁 CTRL ESC } if (pkbhs->vkCode == VK_TAB && pkbhs->flags&LLKHF_ALTDOWN) { return 1; //封锁 ALT TAB } if (pkbhs->vkCode == 115 && pkbhs->flags & LLKHF_ALTDOWN) { return 1; //封锁 ALT F4 } if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags & LLKHF_ALTDOWN) { return 1; //封锁 ALT ESC } if (pkbhs->vkCode == VK_SPACE && GetAsyncKeyState(VK_CONTROL) < 0) { return 1; //封锁 CTRL ' ' } return CallNextHookEx(OldHook, code, wParam, lParam); } 然后就可以屏蔽和启用系统热键了 // 屏蔽热键 OldHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyProc, HInstance, 0); // 启用热键 UnhookWindowsHookEx(OldHook); 这个方法 应该是现在最常用的了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |