c # прослушивание комбинации клавиш - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу написать простое program, которое отправляет моего пользователя и пароль в некоторых местах, например, когда я хочу войти на сайт, и я нашел этот проект, который слушает клавиатуру.

ТАК у меня есть эта функция:

private void HookManager_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{

}

private void HookManager_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{

}

private void HookManager_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{

}

И когда я нажимаю, например, клавишу a, у меня есть этот кусочек результата:

int value = e.KeyValue; // 65
Keys key = e.KeyCode;   // A

Так что мне интересно, как ловить определенныеkeyboard combination а не только один key например Ctrl + l?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Переопределение метода ProcessDialogKey () является общим решением:

protected override bool ProcessDialogKey(Keys keyData)
    {
        if (keyData == (Keys.Control | Keys.I))
        {
            MessageBox.Show("Ctrl+I");
            return true;
        }
        return base.ProcessDialogKey(keyData);
    }
0 голосов
/ 08 декабря 2018

Вы можете использовать такой код для KeyDown:

if(e.KeyCode == Keys.F1 && (e.Alt || e.Control || e.Shift))
{
}

На основе KeyEventArgs документации из MSDN:

KeyEventArgs, которая указываетКлавиша, нажата пользователем, и то, были ли одновременно нажаты какие-либо клавиши-модификаторы (CTRL, ALT и SHIFT), передается с каждым событием KeyDown или KeyUp.

Событие KeyDown наступает, когда пользователь нажимает любую клавишу.Событие KeyUp наступает, когда пользователь отпускает ключ.Повторяющиеся события KeyDown происходят каждый раз, когда клавиша повторяется, если клавиша удерживается, но только когда генерируется клавиша, генерируется только одно событие KeyUp.

Событие KeyPress также происходит при нажатии клавиши.KeyPressEventArgs передается с каждым событием KeyPress и указывает символ, который был составлен в результате каждого нажатия клавиши.

...