LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
// 拦截键盘的某些按键, 如果 g_bDisableKeyboard 为 TRUE 则拦截整个键盘按键
if (nCode >= HC_ACTION)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
if (g_bDisableKeyboard)
if (g_lpfnKeyboardProc(wParam, pStruct))
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
else
return true;
LPDWORD tmpVirtualKey = g_lpdwVirtualKey;
for (int i = 0; i < g_nLength; i++)
{
if (pStruct->vkCode == *tmpVirtualKey++)
if (g_lpfnKeyboardProc(wParam, pStruct))
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
else
return true;
}
}
// 调用系统中的下一个钩子
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
{
// 拦截键盘的某些按键, 如果 g_bDisableKeyboard 为 TRUE 则拦截整个键盘按键
if (nCode >= HC_ACTION)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
if (g_bDisableKeyboard)
if (g_lpfnKeyboardProc(wParam, pStruct))
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
else
return true;
LPDWORD tmpVirtualKey = g_lpdwVirtualKey;
for (int i = 0; i < g_nLength; i++)
{
if (pStruct->vkCode == *tmpVirtualKey++)
if (g_lpfnKeyboardProc(wParam, pStruct))
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
else
return true;
}
}
// 调用系统中的下一个钩子
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货