[DllImport("user32")]
        public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);//注册热键
        [DllImport("user32")]
        public static extern bool UnregisterHotKey(IntPtr hWnd, int id);//解除热键
        [DllImport("user32")]
        public static extern void keybd_event(
                     byte bVk,
                     byte bScan,
                     uint dwFlags,
                     uint dwExtraInfo
                                              );//模拟键盘消息        byte VK_NUM1 = 97;
        byte VK_NUM2 = 98;
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case 0x0312:    //这个是window消息定义的   注册的热键消息
                    if (m.WParam.ToString().Equals("888"))  //这是我们注册的那個热键
                    {
                        keybd_event(VK_NUM1, 0, 0, 0);//表示1键按下
                        keybd_event(VK_NUM1, 0, 0x2, 0);//表示1键弹起
                      
                    }
                    if (m.WParam.ToString().Equals("777"))  //这是我们注册的那個热键
                    {
                        keybd_event(VK_NUM2, 0, 0, 0);//表示2键按下
                        keybd_event(VK_NUM2, 0, 0x2, 0);//表示2键弹起                    }
                    break;
            }
            base.WndProc(ref m);
        } private void button1_Click(object sender, EventArgs e)
        { 
            RegisterHotKey(Handle,888,4,Keys.W);//注册按键,shift+w
            RegisterHotKey(Handle, 777, 4, Keys.E);//shift+E
            button1.Enabled = false;
            MessageBox.Show("OK");        }以上是thc1987 提供的注册快捷健的按键方法
以上能实现按Shift+W输入“0”
以上能实现按Shift+E输入“1”但现在我有一个问题
如我注册了Shift + W的时候当用户按下Shift + w 的时候他会引发我的快捷键输入“1”的同时,还会输入Shift+W
也就是说在Shift + w的前或后加输入“1”
谢谢