首页 > 编程语言 > 详细

在C++程序中使用系统热键(附代码)

时间:2021-02-28 00:29:53      阅读:27      评论:0      收藏:0      [点我收藏+]

很多的程序有使用系统热键的需求,比如:使用热键呼出隐藏程序窗体,或者如QQ、微信打开聊天窗口等等。

【注意事项】

- 注册热键的API返回false时,表示注册热键失败,说明热键已经被其他程序使用。
- 程序退出时,需要注销热键。

【代码参考】

// 注册系统热键的API
RegisterHotKey(ID_HOTKEY_TIMINGEXECUTOR, wxMOD_SHIFT|wxMOD_CONTROL, ‘0‘);

// 注销系统热键的API
UnregisterHotKey(ID_HOTKEY_TIMINGEXECUTOR);

  

bool TimingExecuterFrame::regHotkey()
{
    return RegisterHotKey(ID_HOTKEY_TMEX, m_pPref->m_nHotkey1|m_pPref->m_nHotkey2, m_pPref->m_nHotkey3);
}

 

if(!regHotkey())
{
    m_pPref->ResetHotkeySetting(wxMOD_ALT, ‘0‘);
    bool bAlt0 = regHotkey();

    wxString strTip = _T("Ctrl + Alt + 0");
    bool bShift0 = false;
    if(!bAlt0)
    {
        m_pPref->ResetHotkeySetting(wxMOD_SHIFT, ‘0‘);
        bShift0 = regHotkey();
        if(!bShift0)
        {
            wxMessageBox(_("Register HOTKEY failed.") + _T("\n") + 
                _("You can reset HOTKEY setting in Setting dialog."), 
                _("Timing Executor"));
        }
        else
        {
            strTip = _T("Ctrl + Shift + 0");
        }
    }

    if(bAlt0 || bShift0)
        wxMessageBox(_("Register HOTKEY failed.") + _T("\n") + 
            _("HOTKEY restore default setting: ") + strTip + _T("\n") + 
            _("You can reset HOTKEY setting in Setting dialog."), 
            _("Timing Executor"));
}

 

// End

在C++程序中使用系统热键(附代码)

原文:https://www.cnblogs.com/boomworks/p/14457768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!