一段屏蔽系统功能键的代码!
<P>LRESULT __stdcall 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 == VK_LWIN) || (p->vkCode == VK_RWIN));
break;
}
}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL,
(HOOKPROC)LowLevelKeyboardProc, HInstance, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
UnhookWindowsHookEx(hhkLowLevelKybd);
}</P>
<P>这段代码显示了如何屏蔽系统功能键Alt+TAB的例子,可以扩展到屏蔽其他的功能键,但不能屏蔽Ctrl+Alt+Del.</P> <P>必须用全局钩子才能屏蔽吗??</P> 不知道,是否有别的办法!哪位有的话最好拿出来共享呀!
页:
[1]