问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C# winform 程序在后台运行 点击快捷键使程序做出相应反应。

发布网友 发布时间:2022-04-21 14:47

我来回答

4个回答

懂视网 时间:2022-04-21 19:08

网页制作

将一个网站的网页下载下来后进行修改,为什么点击确定键没有响应??我只需要它在浏览器上打开状态栏或地址栏有响应,即使报错也行

热心网友 时间:2022-04-21 17:34

        //初始化函数里加入以下两条就可以用了,我现在定义的是ALT+X与ALT+S
        //这两种组合键,你自己可以改
        public Frmain()
        {
            InitializeComponent();
            RegisterHotKey(this.Handle, 10, MODKEY.ALT, Keys.X);
            RegisterHotKey(this.Handle, 11, MODKEY.ALT, Keys.S);
        }
        protected override void WndProc(ref Message m)
        {
            if(m.Msg == 0x0312)
            {
                switch (m.WParam.ToInt32())
                {
                    case 10:
                        退出ToolStripMenuItem_Click(null,null);
                        break;
                    case 11:
                        notifyIcon1_Click(null,null);
                        break;
                    default:
                        break;
                }
                return;
            }
            base.WndProc(ref m);
        }

        //要定义热键的窗口的句柄
        //定义热键ID(不能与其它ID重复)int id, 
        //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效KeyModifiers fsModifiers,                 Keys vk                     //定义热键的内容
        [DllImport("user32.dll")]
        public static extern bool RegisterHotKey(IntPtr wnd, int id, MODKEY mode, Keys vk);

        [DllImport("user32.dll")]
        public static extern bool UnregisterHotKey(IntPtr wnd, int id);

        [Flags()]
        public enum MODKEY
        {
            None = 0,
            ALT = 0x0001,
            CTRL = 0x0002,
            SHIFT = 0x0004,
            WIN = 0x0008,
        }

刚好写完现成的。还热着呢,给你了,试过可用了。不过不能开同个窗口或是与这热键有冲突的程序。要不然会有其中的一个程序会没有响应的

热心网友 时间:2022-04-21 19:09

热键是在界面不在后台的情况下使用的 你应该是用windows消息回调函数来判断按下了组合键没有

1、向Windows窗口发送Alt组合键
先看WM_SYSKEYDOWN的help:The WM_SYSKEYDOWN message is posted to the window with the keyboard focus when the user holds down the ALT key and then presses another key. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lKeyData parameter.WM_SYSKEYDOWN nVirtKey = (int) wParam; // virtual-key code lKeyData = lParam; // key data ParametersnVirtKeyValue of wParam. Specifies the virtual-key code of the key being pressed. lKeyDataValue of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table:Value Description0-15 Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user holding down the key.16-23 Specifies the scan code. The value depends on the original equipment manufacturer (OEM).24 Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.25-28 Reserved; do not use.29 Specifies the context code. The value is 1 if the ALT key is down while the key is pressed; it is 0 if the WM_SYSKEYDOWN message is posted to the active window because no window has the keyboard focus.30 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.31 Specifies the transition state. The value is always 0 for a WM_SYSKEYDOWN message.之前曾经修改过keyData的16-23位为VK_MENU,第30位参数为1,但没效果请看位29的说明!!The value is 1 if the ALT key is down while the key is pressed; 当值为1时表示ALT键被按下!这不正是我需要的吗?于是把29位设置为1,函数调用变成PostMessage(hWnd,WM_SYSKEYDOWN,0x41,1<<29);经过测试,发现这个就是Alt+A的效果!!追问太乱了。。。。看不清。。。

追答http://blog.csdn.net/pjl1119/article/details/6914902

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 火锅餐厅厨房有哪些 小火锅厨房设备有哪些 主管护理师哪个好考 目前而言,请问什么可以代替克鲁伯的氟硅脂呢? 新华保险公司是什么性质的公司 新华保险公司排名第几 用二保焊烧镀锌板有什么危害 二保焊有什么危害 二保焊用的二氧化碳有毒吗? 二保焊有哪些危害? 二保焊是有害工种吗 二保焊有害? 二保焊的焊接对人体有什么危害? 中国新华保险公司代码 二保焊有哪些危害 想问一下专业人士二保焊(co2)对人体有什么危害,会导致不孕吗? 新华保险是合法的吗 二保焊的危害是什么 二保焊镀锌件儿会产生有毒气体吗 汽车二保焊对身体有没有伤害? 关于养老保险缴费基数的问题 长期干二保焊对身体有什么危害 oppor9s充电时上边的呼吸灯怎样才能亮? OPPOr9s充电呼吸灯怎么弄亮 电脑的开机键和重启键在键盘上面,电脑显示屏下面,这样的东西哪里比较多,见下面截图 电脑开机为什么显示屏不显示?鼠标指示灯亮。为什么键盘指示灯不亮? 电脑开机但是显示屏和键盘没有反应 更换了主机也没有用 为什么电脑主机开了显示屏和键盘没反应 5s可以下载什么软件,在图片上画圈圈的啊? 亲们,我想在苹果手机上下载一个可以在图片上画圈圈,做标记的软件,有知道的吗?谢谢非常感谢 不知大家有没有这样的烦恼,就是家里孩子的房间永远都收拾不干净 当兵体检有哪些? 去当兵做哪些体检项目 中国移动iphone5 里面的个人热点是怎样收费的?可以使用包月里面的流量吗? 怎样删除计算机中的视频设备,windows7系统的,谢谢了 恒宝股份股票代码 win7计算机里视频设备怎么删除???我的是华硕的,有专门的软件,用不着... win7系统计算机里没有视频设备项 189邮箱刚增加的安全文件夹是什么来的? 拉链头拉掉了,怎么办 我的方正笔记本电脑装的是Windows7系统,怎样使“视频设备”(摄像头)图标在“计算机”窗口中显示? 蘑菇放保鲜一周能吃吗