1. 程式人生 > >如何在程式碼中遮蔽alt+tab組合鍵

如何在程式碼中遮蔽alt+tab組合鍵

#include <windows.h>


HHOOK g_hKeyBoard;


//底層鍵盤系統呼叫,過濾alt + tab

LRESULT CALLBACK KeyBoardProc(int code, WPARAM wParam, LPARAM lParam)

{

if (code == HC_ACTION)

{

PKBDLLHOOKSTRUCT p;


switch (wParam)

{

case WM_KEYDOWN:

case WM_SYSKEYDOWN:

case WM_KEYUP:

case WM_SYSKEYUP:

p = (PKBDLLHOOKSTRUCT)lParam;


if ((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0) ) 

{

return 1;

}


break;

}


}


return ::CallNextHookEx(g_hKeyBoard, code, wParam, lParam);

}

//註冊全域性hook

void SetHook()

{

g_hKeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, KeyBoardProc, GetModuleHandle(L"Hook"), 0);


}


//登出全域性hook

void UnSetHook()

{

if (g_hKeyBoard)

UnhookWindowsHookEx(g_hKeyBoard);

g_hKeyBoard = NULL;

}