Захват сообщений нажатия клавиш - PullRequest
1 голос
/ 18 октября 2008

Мы создаем программное обеспечение для собственного киоска. Программное обеспечение представляет собой базовую форму Windows .net со встроенным браузером. Киоск снабжен матом, на который ступает пользователь. Когда пользователь наступает на коврик, он посылает комбинацию клавиш через клавиатуру. Когда пользователь сходит с мата, он посылает другую комбинацию клавиш.

Нам нужно найти комбинацию клавиш в нашем приложении, и в зависимости от того, включен или выключен пользователь, браузер переходит на другой URL.

Как вы подключаете клавиатуру, чтобы приспособиться к этому типу ситуации?

Ответы [ 3 ]

2 голосов
/ 18 октября 2008

Если ваше окно является активным, то вы можете просто переопределить формы ProcessCmdKey, как показано ниже.

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    const int WM_KEYDOWN = 0x100;
    const int WM_SYSKEYDOWN = 0x104;

    if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
    {
        switch (keyData)
        {
            case Keys.Down:
                this.Text = "Down Arrow Captured";
                break;

            case Keys.Up:
                this.Text = "Up Arrow Captured";
                break;

            case Keys.Tab:
                this.Text = "Tab Key Captured";
                break;

            case Keys.Control | Keys.M:
                this.Text = "<CTRL> + M Captured";
                break;

            case Keys.Alt | Keys.Z:
                this.Text = "<ALT> + Z Captured";
                break;
        }
    }

    return base.ProcessCmdKey(ref msg, keyData);
}
1 голос
/ 18 октября 2008

Некоторое время назад я проводил похожий поиск в отношении устройств чтения карт USB.

Я наткнулся на эту статью о CodeProject для обработки необработанного ввода устройств.

Моей главной целью было разграничить несколько устройств, которые действуют как клавиатуры. Ваше устройство может иметь другой интерфейс. Он также может иметь SDK и документацию. Мы не знаем.

0 голосов
/ 18 октября 2008

И если ваше приложение НЕ является основным окном, взгляните на RegisterHotkey Win32 API, с некоторой информацией о p / invoke здесь .

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