加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中设置应用程序范围的热键

发布时间:2020-12-15 08:09:04 所属栏目:百科 来源:网络整理
导读:有一篇文章在C#中设置系统范围的全局热键 here 我想设置应用程序范围的热键,这样如果用户在应用程序的任何子窗口上按下热键,特定窗口将接收并处理它. 谢谢. 解决方法 您可以为应用程序创建基本表单,并将keypreview属性设置为true并处理keydown事件,以便所有
有一篇文章在C#中设置系统范围的全局热键
here

我想设置应用程序范围的热键,这样如果用户在应用程序的任何子窗口上按下热键,特定窗口将接收并处理它.

谢谢.

解决方法

您可以为应用程序创建基本表单,并将keypreview属性设置为true并处理keydown事件,以便所有表单都具有相同的键定义.

您还可以使用以下例程为表单注册热键,但在此方法中,您需要在每个表单的load事件上调用相同的方法.

protected override bool ProcessCmdKey(ref Message message,Keys keys)
{
    switch (keys)
    {
        case Keys.F2 | Keys.Control:
            //Process action here.
            return false;
    }

    return false;
}

您也可以使用user32.dll中的以下非托管方法,但我当然不建议这样做.

static extern bool RegisterHotKey(IntPtr hWnd,int id,uint fsModifiers,uint virtualKey);
private static extern bool UnregisterHotKey(IntPtr hWnd,int id);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读