屏蔽掉Ctrl+Esc、Alt+Esc、Alt+Tab、Num Lock等键,其实就是安装个钩子函数LowLevelKeyBoardProc,然后当键盘有以上按键发生时返回TRUE就行了...
偶发现截图工具HyperSnap在用快捷键 Ctrl+shift+R截图时此程序屏蔽不了。
// 禁止切换任务.cpp
//
#define _WIN32_WINNT 0x0400 // 当前操作系统版本为NT 4.0
#include //KBDLLHOOKSTRUCT结构体需要
HHOOK hhk;
// SetWindowsHookEx 调用的回掉函数
LRESULT CALLBACK LowLevelKeyBoardProc (int nCode, WPARAM wParam, LPARAM lParam)
{
KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
BOOL bControlKeyDown = FALSE;
switch (nCode)
{
case HC_ACTION:
// 检查Ctrl键是否按下
bControlKeyDown =
::GetAsyncKeyState (VK_CONTROL) >> ((sizeof (SHORT) * 8) - 1);
// 禁止Ctrl + Esc
if (pkbhs->vkCode == VK_ESCAPE && bControlKeyDown)
return 1;
// 禁止Alt + Tab
if ((pkbhs->vkCode == VK_TAB) && ((pkbhs->flags & LLKHF_ALTDOWN) != 0))
return 1;
// 禁止Alt + Esc
if ((pkbhs->vkCode == 0x1B)