最近做了一個小工具,可以遠端控制鎖定和解鎖計算機,鎖定就是通過禁用滑鼠和鍵盤事件來限制,使用的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);