就算你的程序被挂起来了,也可以接收到热键

解决方案 »

  1.   

    // 注册你想要监视的热键  windows的logo +A
    if(!::RegisterHotKey(this->GetSafeHwnd(),0x3000,MOD_WIN,0x41 ) )
    {  ::AfxMessageBox("热键注册失败!");

    }

    // 监视 ctrl + a
    ::RegisterHotKey(this->GetSafeHwnd(),0x3001,MOD_CONTROL,0x41 );
    ::RegisterHotKey(this->GetSafeHwnd(), 0x3002 , MOD_CONTROL | MOD_SHIFT, 'A'); // 单独的a
    ::RegisterHotKey(this->GetSafeHwnd(),0x3003,0,0x41 );    2   定义 热键的消息响应和映射  头文件 源文件 消息映射宏 3个地方
            afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);
            LRESULT CHotKeyDlg::OnHotKey(WPARAM wParam,LPARAM lParam)
            ON_MESSAGE(WM_HOTKEY,OnHotKey) LRESULT CHotKeyDlg::OnHotKey(WPARAM wParam,LPARAM lParam)
    {
    if ( 0x3000 == wParam)
    {
    AfxMessageBox(" windows的logo + A");
    }
    else if ( 0x3001 == wParam)
    {
    AfxMessageBox(" Ctrl + A ");
    }
    else if ( 0x3002 == wParam)
    {
    AfxMessageBox(" Ctrl + shift + A");
    }
    else if ( 0x3003 == wParam )
    {
    AfxMessageBox("  单独的 A ");
    } return 1;
    }    3   释放热键
            ::UnregisterHotKey(m_hWnd,0x3000);