Win Api 做个钩子

/******************************************************************************
Module:  DisableLowLevelKeys.cpp
Notices: Written 2000 Jeffrey Richter
******************************************************************************/


#define _WIN32_WINNT 0x0400
#include <Windows.h>


///////////////////////////////////////////////////////////////////////////////


LRESULT CALLBACK 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));
         break;
      }
   }
   return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}
///////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {

   // Install the low-level keyboard & mouse hooks
   HHOOK hhkLowLevelKybd  = SetWindowsHookEx(WH_KEYBOARD_LL,
      LowLevelKeyboardProc, hinstExe, 0);

   // Keep this app running until we're told to stop
   MessageBox(NULL,
      TEXT("Alt+Esc, Ctrl+Esc, and Alt+Tab are now disabled./n")
      TEXT("Click /"Ok/" to terminate this application and re-enable these keys."),
      TEXT("Disable Low-Level Keys"), MB_OK);

   UnhookWindowsHookEx(hhkLowLevelKybd);

   return(0);
}


///////////////////////////////// End Of File /////////////////////////////////
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值