范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

在窗体不是焦点时设置全局快捷键

  添加窗体以后,我们可以通过一系列事件给窗体添加快捷键
  private void Form1_KeyUp(object sender, KeyEventArgs e)         {             if (e.KeyCode == Keys.B)             {                 MessageBox.Show("B");             }         }
  这样当我们在按下"B"键时,就可以弹出对话框,但这种方法有一个弱点:窗体必须在获取焦点的情况下,按了才起作用。我们可以通过使用全局快捷键的方法来解决这个问题,也就是在任何时候按下,程序都会响应快捷键。
  整体代码及使用方法如下:using System.Runtime.InteropServices;  namespace hotkey {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }          private void Form1_KeyUp(object sender, KeyEventArgs e)         {             if (e.KeyCode == Keys.B)             {                 MessageBox.Show("B");             }         }          HotKey hk = new HotKey();         private void Form1_Load(object sender, EventArgs e)         {             hk.Reg(Handle, 100, 1 | 2, Keys.G);         }         private void Form1_Leave(object sender, EventArgs e)         {             hk.UnReg(Handle, 100);         }         protected override void WndProc(ref Message m)         {             int HotKeyNum = hk.Handle(ref m);             switch (HotKeyNum)             {                 case 100:                     MessageBox.Show("按下了系统热键!");                     break;             }             base.WndProc(ref m);         }          ///          /// 注册系统快捷键         /// --------------说明------------------         /// 1、在窗体的Activated事件中写入如下代码:         /// Reg(Handle, 100, 1 | 2, Keys.G);         /// Alt = 1,Ctrl = 2,Shift = 4,WindowsKey = 8         /// 2、重写WndProc方法         /// protected override void WndProc(ref Message m)         /// {         ///    int HotKeyNum = Handle(ref m);         ///    switch (HotKeyNum)         ///    {         ///        case 100:         ///            MessageBox.Show("HAHA");         ///            break;         ///    }         ///    base.WndProc(ref m);         /// }         /// 3、在窗体的Leave事件中写入如下代码         /// UnReg(Handle, 100);         /// ------------------------------------         ///          public class HotKey         {             [DllImport("user32.dll", SetLastError = true)]             static extern bool RegisterHotKey(                 IntPtr hWnd,                 //要定义热键的窗口的句柄                 int id,                      //定义热键ID(不能与其它ID重复)                           int fsModifiers,    //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效                 Keys vk                      //定义热键的内容                 );              [DllImport("user32.dll", SetLastError = true)]             static extern bool UnregisterHotKey(                 IntPtr hWnd,                 //要取消热键的窗口的句柄                 int id                       //要取消热键的ID                 );              ///              /// 注册系统快捷键             /// --------------说明------------------             /// 在 Form1_Activated 或 Load 事件中              /// Reg(Handle, 100, 1 | 2, Keys.G);             /// Alt = 1,Ctrl = 2,Shift = 4,WindowsKey = 8             /// ------------------------------------             ///              /// 写handle即可             /// 该快捷键的注册数字,如100             /// 辅助键如Ctrl,KeyModifiers中的一个             /// 与fsModifiers的组合键,如Keys.A             ///              public bool Reg(IntPtr hWnd, int id, int fzKeys, Keys vk)             {                 return RegisterHotKey(hWnd, id, fzKeys, vk);             }             ///              /// 注销系统快捷键             /// --------------说明------------------             /// 在 Form1_Leave 或 FormClosed 事件中              /// UnReg(Handle, 100);             /// ------------------------------------             ///              /// 写字handle即可             /// 该快捷键的数字,如100             ///              public bool UnReg(IntPtr hWnd, int id)             {                 return UnregisterHotKey(hWnd, id);             }              ///              /// 得到快捷键的ID             ///              ///              ///              public int Handle(ref Message m)             {                 const int WM_HOTKEY = 0x0312;                 //按快捷键                 switch (m.Msg)                 {                     case WM_HOTKEY:                         return m.WParam.ToInt32();                 }                  return 0;             }         }     } }说明
  在Form1_Load时,注册快捷键
  //Handle照抄就行
  //100是快捷键号,只要整个程序对得上就行。
  //1|2这里我写的是按下ctrl和alt,这个在我程序中都有说明
  //Alt = 1,Ctrl = 2,Shift = 4,WindowsKey = 8
  //同时还得加上G键
  hk.Reg(Handle, 100, 1 | 2, Keys.G);
  在Form1_Leave时,注销
  hk.UnReg(Handle, 100);
  protected override void WndProc中根据热键号做不同任务运行调试会发现,按"B"键时弹出对话框只能在获取焦点时,或者说你得看得到窗体,还要点下它这时才行,而按ctrl+alt+G时,在任何情况下,都可以弹出对话框。我在本例中只是用对话框做了个例子,大家可以尝试做其它任务。

小朋友小朋友刊物于1922年4月6号正式诞生,距今已有100周年。新中国成立后,小朋友改于少年儿童出版社出版,它是我国少年儿童读物中出版时间最长的出版期数最多的刊物。小朋友杂志由著名文化习酒并购听花酒概率大吗?自从习酒从贵州茅台分离出来,习酒一直在研究怎么上市问题,公司不断整合重组研究之中。研究是到证监会申请上市,还是收购上市或并购上市,达到尽快上市融资目的。其实有一个怪现象,习酒缺钱吗世界杯14决赛,阿荷大战,阿根廷队有多大概率过关?随着世界杯八强全部产生,14决赛首轮即将展开较量,阿根廷队VS荷兰队!在这之前,荷兰队31战胜美国队,阿根廷队21战胜澳大利亚队,两队都是比较轻松的进入八强。那接下来,谁能闯进四强赶紧收藏!缓解偏头痛最快的方法现代社会,由于生活工作压力大,很多人都处于亚健康状态,经常会出现各种不适,如情绪不稳定偏头痛颈肩腰痛等。特别是偏头痛,反复无常又折磨人。常见的原发性偏头痛诱发因素有家族遗传史的遗传宝宝肠胀气不要慌!这8个解决方法了解下肠胀气是新生儿很常见的问题,3个月内正是宝宝肠胀气的高发期,比如宝宝肚子异常屁多肚子咕咕响频繁吃奶大便带泡泡,出现黄昏闹等都是肠胀气的表现,妈妈们一定要提前做好功课,正确护理才行!新手爸妈012个月的宝宝怎么吃?听听育儿专家怎么说红网时刻新闻12月8日讯(通讯员刘赞丽)母乳是最天然的食物,6月龄以内宝宝建议纯母乳喂养,如果母乳不够时,使用婴儿配方奶,除维生素D等营养剂补充外,不需要额外再喂水,不管是母乳,还女孩数学好,还得看天赋?错,幼儿园起培养数学脑才是关键大家好,我是红红很多家长会发现,孩子上学以后,最容易拉开差距的学科就是数学,尤其是到了初中高中,这种情况会更明显。而且,因为数学是理科的基础,数学差的孩子,理化生三科的学习也大都非早教素材幼儿简笔画涂色350张早教素材幼儿简笔画涂色素材350张孩子早教必备素材,看似简单,但是十分考验孩子的耐心和仔细!在孩子绘画启蒙阶段,宝宝的涂色和色彩也是需要训练的,赶快让孩子涂起来吧!有对照颜色参考,盘点那些甜的不要不要的韩剧这个冬天一起回温一遍可好?入冬了就格外的冷了,迫切需要点精神食粮补给一下,这时候来部韩剧就十分完美了!那些年追了一遍又一遍的韩剧,敢不敢再翻出来回温一遍?想想那画面,来一杯热饮,再来一堆零食,躺在被窝里面追喝热水比冷水更健康?不一定作为全世界最喜欢喝热水的国家,很多人对多喝热水有着自己的执念。关于喝热水,很多人认为水温越高越好,尤其是在秋冬季节。从科学的角度来说,多喝热水真的更健康吗?实际上,温度过高的热水,每日元速递丨北京出台数字经济条例Forever21首推元宇宙时装01。腾讯QQ音乐携手仙剑奇侠传再次发行数字藏品QQ音乐携手仙剑奇侠传官方推出系列音乐数字藏品,以复古数字磁带的方式限量发行。据介绍,该系列磁带重制了李逍遥赵灵儿和彩依的三首剧情曲
又一T0射手诞生,吊打百里,碾压后羿,出暗影战斧提升70伤害在王者荣耀中,射手英雄永远都是队伍中最核心的输出,随着版本的调整,射手英雄的玩法也会有着很大的变化。原本强势的打法可能会跌入谷底,而原本无人问津的打法,也可能登顶T0。不管什么样的小米有品特工级电竞椅?9种玩法可按摩!网友给LPL选手人手一台近几年电竞行业在全球范围内高速发展,数据显示,2021年我国电竞用户整体规模约为5。6亿人,预计2022年我国电竞市场将突破2000亿元。随着电竞概念的普及,玩家对于电竞产品的要求蛋仔派对开学免费拿外观?!玩家忍不住直呼香喷喷几家欢喜几家愁虽然不该说,但是本蛋蛋还是要喊出那句大家!准备好要开学了嘛!(鼻青脸肿。jpg,不要拿咸鱼锤打我啦!)那蛋仔也是考虑到大家开(jiao)心(lv)的心态,贴心的给大家传奇游戏玩法大侠传奇呢,是一款非专职业游戏版本,每个职业的优势点是玩家需要知道的,比如法师远程输出战士贴身战斗道士近远想融合和辅助效果。每一个职业都有很明显的优势,但是也有明显的缺陷,可是如果王者荣耀代打市级省级巅峰小国1。任意英雄均可,效率安全,2。双方阵营在每一路都会有一条兵线第一波兵线刷新时间开局后10秒每波兵线数量3个每波兵线刷新间隔30秒炮车游戏开局10分钟时间后,炮车出现炮车的特点攻击王者荣耀9。1日更新重点王者荣耀9。1日不停机更新重点如下一积分夺宝折扣开启45积分一次,200积分五次二全新玩法云中飞舟开启在前进的过程中,玩家可以通过打爆氮气罐获取氮气值,氮气值满后可以驾驶沙舟竞速,道天录武神殿,PvP装备技能阵容推荐头条创作挑战赛说起武神殿里无外乎阵容装备技能搭配等,都已经是老生常谈了。双方如果阵容相似,输赢除了看脸之外,还有小细节的差距比如技能搭配装备穿戴等。随着新轮回者不断增多,团队阵容可RNG冒泡赛支持率太低,大多数都看好EDG,北枫打法不适应版本这段时间关于接下来英雄联盟全球总决赛的冒泡赛讨论还是比较多的,甚至讨论度超过了这一次英雄联盟LPL夏季赛总决赛,或许是因为总决赛在不少观众朋友们心目当中没有悬念,又或许是因为冒泡赛王者荣耀无限飞剑火力压制,专精干将莫邪已成版本上分利器S28赛季随着专精装备的上线,干将莫邪重新在路人局和KPL职业赛场成为版本强势法师。近期全分段排位胜率52。78巅峰赛胜率51。32顶端局排位胜率50。26,是现版本为数不多出场率龙随从迎来绝地反击!炉石传说酒馆战棋新版本众玩法皆能吃鸡随着8月31日炉石传说新版本的上线,如今酒馆战棋的页面已经换了风格。这一次酒馆战棋进行了大刀阔斧的改革,不仅界面感到新颖,而且新奖励也不少,一大早人们就开始进行疯狂的体验了。人们最华为智能协作合作伙伴峰会2022成功举办,铠甲一号带你直面精彩2022年9月8日,华为智能协作合作伙伴峰会2022盛大开幕,来自全国各地的合作伙伴齐聚山东青岛,共同探讨数字化办公前沿话题解读视频会议最新发展分享数字化应用最新落地成果,致力于赋