zoukankan      html  css  js  c++  java
  • HOOK 底层键盘消息---WH_KEYBOARD_LL

    代码:屏蔽三个全局快捷键

    代码的作用是屏蔽掉凝视中的三个快捷键.


    LRESULT CALLBACK LowLevelKeyboardProc (INT nCode, WPARAM wParam, LPARAM lParam)
    {
    	// By returning a non-zero value from the hook procedure, the
    	// message does not get passed to the target window
    	KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *)lParam;
    	BOOL bControlKeyDown = 0;
    
    	HWND hWnd = GetForegroundWindow();
    	WCHAR szClassName[MAX_PATH] = {0};
    	::GetClassName(hWnd, szClassName, MAX_PATH);
    
    		switch (nCode)
    		{
    		case HC_ACTION:
    			{
    				// Check to see if the CTRL key is pressed
    				bControlKeyDown = GetAsyncKeyState (VK_CONTROL) >> ((sizeof(SHORT) * 8) - 1);
    
    				 //Disable CTRL+ESC
    				if (pkbhs->vkCode == VK_ESCAPE && bControlKeyDown)
    					return 1;
    
    				 //Disable ALT+TAB
    				if (pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN)
    					return 1;
    
    				 //Disable ALT+ESC
    				if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags & LLKHF_ALTDOWN)
    					return 1;
    
    				break;
    			}
    
    		default:
    			break;
    		}
    		//MessageBoxA(NULL, "aaa", NULL, MB_OK);
    		return 1;
    
    
    
    }
    
    void ChookKeyboardllDlg::OnBnClickedOk()
    {
    	// TODO: 在此加入控件通知处理程序代码
    	Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)LowLevelKeyboardProc, theApp.m_hInstance,0); 
    	//CDialogEx::OnOK();
    }
    
    
    void ChookKeyboardllDlg::OnBnClickedCancel()
    {
    	// TODO: 在此加入控件通知处理程序代码
    	if(Hook)
    	{
    		BOOL result = UnhookWindowsHookEx((HHOOK)Hook); // 卸载钩子
    		if (result) Hook = NULL;
    	}
    	//CDialogEx::OnCancel();
    }


  • 相关阅读:
    MySQL实现了四种通信协议
    深入了解Windows句柄到底是什么
    Linux虚拟地址空间布局以及进程栈和线程栈总结
    malloc 函数详解
    数组指针和指针数组的区别
    Linux中sudo配置
    ctrl+c,ctrl+d,ctrl+z在linux程序中意义和区别
    linux select函数详解
    linux grep命令详解
    Linux find 用法示例
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7360138.html
Copyright © 2011-2022 走看看