天天看點

C++禁止鍵盤和滑鼠事件

最近做了一個小工具,可以遠端控制鎖定和解鎖計算機,鎖定就是通過禁用滑鼠和鍵盤事件來限制,使用的WINDOWS的HOOK函數,下面分享一下具體的實作方法:

1、首先是兩個鈎子函數:

HHOOK hook_hwnd_keyboard = NULL;
HHOOK hook_hwnd_mouse = NULL;
HMODULE g_module;

// 滑鼠事件
LRESULT CALLBACK MyHookFunMouse(int nCode, WPARAM wParam, LPARAM lParam)
{
  // 滑鼠所有事件都不處理
  return 1;
}

// 鍵盤事件
LRESULT CALLBACK MyHookFunKeyBoard(int nCode, WPARAM wParam, LPARAM lParam)
{
  PKBDLLHOOKSTRUCT pVirKey = (PKBDLLHOOKSTRUCT)lParam;

  if (nCode >= 0)
  {
    // 按鍵消息
    switch (wParam)
    {
    case WM_KEYDOWN:
    case WM_SYSKEYDOWN:
    case WM_KEYUP:
    case WM_SYSKEYUP:
      switch (pVirKey->vkCode)
      {
      case VK_LWIN:
      case VK_RWIN:
        return 1;
        break;
      }
      return 1;
      break;
    }
  }

  return CallNextHookEx(hook_hwnd_keyboard, nCode, wParam, lParam);
}      

2、然後分别把滑鼠和鍵盤這兩個函數設定進去;這樣就達到了鎖定電腦,滑鼠和鍵盤都不可用了;

hook_hwnd_keyboard = SetWindowsHookEx(WH_KEYBOARD_LL, MyHookFunKeyBoard, g_module, 0);
hook_hwnd_mouse = SetWindowsHookEx(WH_MOUSE_LL, MyHookFunMouse, g_module, 0);      
UnhookWindowsHookEx(hook_hwnd_keyboard);
UnhookWindowsHookEx(hook_hwnd_mouse);      

繼續閱讀