Ejemplo n.º 1
0
        /// <summary>
        /// 键盘功能按键响应
        /// </summary>
        void keyBoard_KeyFunctionEvent(string keycode)
        {
            switch (keycode)
            {
            case AppCode.TAB:
                //定位按钮切换Tab按键
                System_API.keybd_event(Keys.Tab, 0, 0, 0);
                System_API.keybd_event(Keys.Tab, 0, 0x02, 0);
                break;

            case AppCode.ENTER:
                //定位按钮切换Tab按键
                System_API.keybd_event(Keys.Enter, 0, 0, 0);
                System_API.keybd_event(Keys.Enter, 0, 0x02, 0);
                break;

            case AppCode.Upper:
                KeyBoardStateCache.CapsLock = !KeyBoardStateCache.CapsLock;
                KeyBoardStateCache.KeyBoard.SetMainKeyboardLedStatus(0, KeyBoardStateCache.CapsLock);
                System_API.keybd_event(Keys.CapsLock, 0, 0, 0);
                System_API.keybd_event(Keys.CapsLock, 0, 0x02, 0);
                break;

            case AppCode.Language:
                if (!KeyBoardStateCache.IsEN)       //中文
                {
                    KeyBoardStateCache.IsEN = true; //英文
                    KeyBoardStateCache.KeyBoard.SetMainKeyboardLedStatus(1, false);
                    KeyBoardStateCache.KeyBoard.SetMainKeyboardLedStatus(2, true);
                }
                else
                {
                    //切换中文  英文LED关闭,大写LED关闭 ,中文LED开启
                    KeyBoardStateCache.IsEN = false;    //中文
                    KeyBoardStateCache.KeyBoard.SetMainKeyboardLedStatus(2, false);
                    KeyBoardStateCache.KeyBoard.SetMainKeyboardLedStatus(1, true);
                }
                //切换中英文,大写灯自动关闭
                KeyBoardStateCache.KeyBoard.SetMainKeyboardLedStatus(0, false);
                KeyBoardStateCache.CapsLock = false;
                //模拟键盘Shift切换中英文输入法
                System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                System_API.keybd_event(Keys.ShiftKey, 0, 0x02, 0);
                break;

            case AppCode.Symbol:
                //符号键模拟 Control+Shift+Z 调取搜狗输入法符号页面
                System_API.keybd_event(Keys.ControlKey, 0, 0, 0);
                System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                System_API.keybd_event(Keys.Z, 0, 0, 0);
                System_API.keybd_event(Keys.ControlKey, 0, 0x02, 0);
                System_API.keybd_event(Keys.ShiftKey, 0, 0x02, 0);
                System_API.keybd_event(Keys.Z, 0, 0x02, 0);
                break;

            case AppCode.Coordination:
                this.ControlXiaoMai();
                break;

            default:
                Dispatcher.BeginInvoke((Action) delegate
                {
                    Messenger.Default.Send <AppCodeMessage>(new AppCodeMessage()
                    {
                        AppCode = keycode
                    });
                }, System.Windows.Threading.DispatcherPriority.Send);
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 键盘标准按键响应
        /// </summary>
        void keyBoard_KeyStandardEvent(uint keycode, uint fnkeys)
        {
            //模拟键盘输入
            if (fnkeys == 1)
            {
                switch (keycode)
                {
                case 48:           //0
                    keycode = 188; //,
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    break;

                case 49:           //1
                    keycode = 189; //-
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    break;

                case 50:           //2
                    keycode = 186; //:
                    System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    System_API.keybd_event(Keys.ShiftKey, 0, 2, 0);
                    break;

                case 51:           //3
                    keycode = 187; //=
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    break;

                case 52:          //4
                    keycode = 57; //(
                    System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    System_API.keybd_event(Keys.ShiftKey, 0, 2, 0);
                    break;

                case 53:           //5
                    keycode = 111; //、
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    break;

                case 54:          //6
                    keycode = 48; //)
                    System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    System_API.keybd_event(Keys.ShiftKey, 0, 2, 0);
                    break;

                case 55:          //7
                    keycode = 53; //%
                    System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    System_API.keybd_event(Keys.ShiftKey, 0, 2, 0);
                    break;

                case 56:           //8
                    keycode = 186; //;
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    break;

                case 57:          //9
                    keycode = 56; //*
                    System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    System_API.keybd_event(Keys.ShiftKey, 0, 2, 0);
                    break;

                default:
                    break;
                }
            }
            else
            {
                if (keycode == 188)
                {
                    keycode = 187;
                    System_API.keybd_event(Keys.ShiftKey, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 0, 0);
                    System_API.keybd_event((Keys)keycode, 0, 2, 0);
                    System_API.keybd_event(Keys.ShiftKey, 0, 2, 0);
                }
                else
                {
                    Keys key = (Keys)keycode;
                    System_API.keybd_event(key, 0, 0, 0);
                    System_API.keybd_event(key, 0, 0x02, 0);
                }
            }
        }