c # добавление задержки на глобальные горячие клавиши - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть глобальные горячие клавиши, и я пытаюсь добавить задержку, и я использовал lastPressedTime.AddSeconds(.5), но безуспешно.

Я не использую события форм, к которым привык.

private void Menu_Load(object sender, EventArgs e)
        {
            textBox1.ReadOnly = true;
            IntPtr thisWindow = this.Handle;
            RegisterHotKey(thisWindow, 1, (uint)fsModifiers.Control, (uint)Keys.Q);
            RegisterHotKey(thisWindow, 2, (uint)fsModifiers.Control, (uint)Keys.W);
            RegisterHotKey(thisWindow, 3, (uint)fsModifiers.Control, (uint)Keys.E);
        }

        public enum fsModifiers
        {
            NoModifier=0x000,
            Alt = 0x0001,
            Control = 0x0002,
            Shift = 0x0004,
            Window = 0x0008,
        }

        private void Menu_FormClosed(object sender, FormClosedEventArgs e)
        {
            UnregisterHotKey(thisWindow, 1);
        }

        protected override void WndProc(ref Message keyPressed)
        {
            IntPtr i = keyPressed.WParam;
            DateTime lastPressedTime = DateTime.MinValue;

            if (DateTime.Now > lastPressedTime.AddSeconds(.5)&& i == (IntPtr)1 && keyPressed.Msg == 0x0312)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    ShowWindow(this.Handle, SW_RESTORE);
                    TopMost = true;
                }
                else
                {
                    this.WindowState = FormWindowState.Minimized;
                    TopMost = false;
                }
            }

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...