예제 #1
0
        private bool SetUpKeyBoardSwitchHotkeyEventHandler(int index, Keys keys)
        {
            if (_imitateItem.KeyboardImitateItems.Values.Count(keyboardImitateItem => keyboardImitateItem.Hotkey == keys) > 1)
            {
                MessageBox.Show("此快捷键已存在\n相同快捷键只有第一个会生效\n请重新设置", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            if (_imitateItem.KeyboardImitateItems[index].HotkeyId != default)
            {
                Hotkey.UnregisterHotKey(Handle, _imitateItem.KeyboardImitateItems[index].HotkeyId);
                _imitateItem.HotkeyIds.Remove(_imitateItem.KeyboardImitateItems[index].HotkeyId);
            }

            int hotkeyId;

            do
            {
                hotkeyId = Utils.GenerateHotkeyId();
                if (_imitateItem.HotkeyIds.ContainsKey(hotkeyId))
                {
                    continue;
                }
                _imitateItem.HotkeyIds.Add(hotkeyId, "键盘");
                _imitateItem.KeyboardImitateItems[index].HotkeyId = hotkeyId;
                break;
            } while (true);

            Hotkey.RegisterHotKey(Handle, hotkeyId, KeyModifiers.Ctrl, keys);
            return(true);
        }
예제 #2
0
        private void InitializeComponent()
        {
            Hotkey.RegisterHotKey(Handle, 101, KeyModifiers.Shift, Keys.S);

            _lblPositionMessage = new Label();
            _lblPositionHotkey  = new Label();

            Controls.Add(_lblPositionMessage);
            Controls.Add(_lblPositionHotkey);

            Icon          = (Icon) new ComponentResourceManager(typeof(MainForm)).GetObject("$this.Icon");
            Size          = new Size(700, 350);
            StartPosition = FormStartPosition.CenterScreen;
            MaximizeBox   = false;
            MinimizeBox   = false;
            Text          = Title;
            FormClosing  += (_, _) =>
            {
                Hotkey.UnregisterHotKey(Handle, 101);
            };

            _lblPositionMessage.Size      = new Size(700, 82);
            _lblPositionMessage.Location  = new Point(-15, 50);
            _lblPositionMessage.TabIndex  = 0;
            _lblPositionMessage.Text      = "鼠标指针移动至要获取坐标的位置";
            _lblPositionMessage.TextAlign = ContentAlignment.MiddleCenter;
            _lblPositionMessage.Font      = new Font("宋体", 12F, FontStyle.Bold, GraphicsUnit.Point, 134);

            _lblPositionHotkey.Size      = new Size(700, 82);
            _lblPositionHotkey.Location  = new Point(-15, 135);
            _lblPositionHotkey.TabIndex  = 0;
            _lblPositionHotkey.Text      = "按下【" + HotkeySwitch + "】即可";
            _lblPositionHotkey.TextAlign = ContentAlignment.MiddleCenter;
            _lblPositionHotkey.Font      = new Font("宋体", 12F, FontStyle.Bold, GraphicsUnit.Point, 134);
        }
예제 #3
0
 public MainForm()
 {
     InitializeComponent();
     Hotkey.RegisterHotKey(Handle, 100, KeyModifiers.Shift,
                           Keys.D);
     _imitateItem = new ImitateItem();
     Drive.Initial();
 }
예제 #4
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            if (!File.Exists("imitateItem.json"))
            {
                Initial();
            }
            else
            {
                try
                {
                    _imitateItem = JsonConvert.DeserializeObject <ImitateItem>(File.ReadAllText("imitateItem.json"));

                    foreach (var mouseImitateItem in from mouseImitate in _imitateItem.MouseImitateItems.Values
                             let count = pnlMouse.Controls.Count
                                         select new MouseImitateItem(count * 220, mouseImitate.Index, mouseImitate.Name,
                                                                     mouseImitate.Operate, mouseImitate.PositionX, mouseImitate.PositionY, mouseImitate.Interval,
                                                                     mouseImitate.Hotkey, RemoveMouseEventHandler,
                                                                     SetUpMouseSwitchHotkeyEventHandler))
                    {
                        Hotkey.RegisterHotKey(Handle, mouseImitateItem.HotkeyId, KeyModifiers.Alt,
                                              mouseImitateItem.Hotkey);

                        pnlMouse.Controls.Add(mouseImitateItem.GrpMouseItem);

                        _imitateItem.MouseImitateItems.Add(mouseImitateItem.Index, mouseImitateItem);
                    }

                    foreach (var keyboardImitateItem in from keyboardImitate in _imitateItem.KeyboardImitateItems.Values
                             let count = pnlKeyboard.Controls.Count
                                         select new KeyboardImitateItem(count * 220, keyboardImitate.Index, keyboardImitate.Name,
                                                                        keyboardImitate.Operate, keyboardImitate.Interval, keyboardImitate.Hotkey,
                                                                        RemoveKeyboardEventHandler,
                                                                        SetUpKeyBoardSwitchHotkeyEventHandler))
                    {
                        Hotkey.RegisterHotKey(Handle, keyboardImitateItem.HotkeyId, KeyModifiers.Ctrl,
                                              keyboardImitateItem.Hotkey);

                        pnlKeyboard.Controls.Add(keyboardImitateItem.GrpKeyboardItem);

                        _imitateItem.KeyboardImitateItems.Add(keyboardImitateItem.Index, keyboardImitateItem);
                    }
                }
                catch (Exception)
                {
                    Initial();
                }
            }
        }