15,979
社区成员
发帖
与我相关
我的任务
分享
LRESULT CALLBACK KeyboardProc( int code,
WPARAM wParam,
LPARAM lParam
)
{
//ALT + 1
if((0x31 == wParam) && ((lParam>>29) & 1))
{
//MessageBox(NULL,L"Hello",L"he",MB_OK);
WinExec("Notepad.exe", SW_SHOW);
}
return 0;
}
HHOOK hHook = NULL;
KBDLLHOOKSTRUCT* kb;
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode == HC_ACTION && wParam == WM_KEYDOWN)
{
kb = (KBDLLHOOKSTRUCT*)lParam;
if (GetAsyncKeyState(VK_CONTROL)&0x8000 && GetAsyncKeyState(VK_MENU))
{
if (kb->vkCode=='X')
{
//按下Ctrl+ALT+X键
}
if (kb->vkCode == 'Z')
{
//按下Ctrl+ALT+Z键
}
}
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
BOOL CyhwbDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, theApp.m_hInstance, NULL);
if (!hHook)
{
MessageBox(TEXT("HOOK 失败!"));
return FALSE;
}