Поймать нажатие клавиши - PullRequest
0 голосов
/ 01 июля 2011

Я использую здесь туториал

http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

Это прерывает нажатие клавиши и выводит ее на консоль. У кого-нибудь есть идеи о том, как заставить это работать для контроля и другого ключа, скажем, ctrl + w? Если да, могу ли я получить какое-либо руководство, или вы можете предложить, что мне нужно исследовать, чтобы узнать?

Спасибо

Ответы [ 3 ]

1 голос
/ 01 июля 2011

System.Windows.Forms.Control.ModifierKeys должен сделать трюк, сообщая вам, нажаты ли клавиши shift, alt и / или control.

Например;

if (Keys.W == (Keys)vkCode && Keys.Control == Control.ModifierKeys)

должен проверить комбинацию ^W, согласно вашей ссылке.

0 голосов
/ 02 июля 2011

На всякий случай настоящий мета-вопрос здесь: как реализовать горячую клавишу, например, Ctrl-W, вы можете сделать это с помощью Win32 RegisterHotKey API.

В примере, на который вы ссылаетесь, используется низкийУровень клавиатуры хук, и, хотя они имеют свое применение, они, как правило, являются редкими и специализированными (возможно, приложение для автоматической записи ввода ввода, или подобное).Есть также некоторые проблемы с перехватами клавиатуры LL - и обратите внимание, что они могут прослушивать клавиши, но даже если ваш код реагирует на клавишу, оригинальная клавиша все еще продолжается в приложении, для которого она первоначально была предназначена.Кроме того, вы должны быть осторожны с тем, что вы делаете в вашем hookproc - не делайте ничего, что может блокировать.Лучше всего просто выполнить некоторые базовые проверки (например, проверить, что это нужный ключ), а затем опубликовать сообщение для себя, а затем обработать это сообщение на досуге.

Для большинства общих приложений обычно естьлучший способ сделать вещи.Если вы думаете о горячих клавишах, RegisterHotKey - это то, что вам нужно.

0 голосов
/ 01 июля 2011

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

Имеет объект KeyPressEventArgs, который содержит свойство «KeyChar», в котором хранится символ нажатой клавиши.

проверить эту ссылку Как создать текстовое поле, которое принимает только цифры?

проблема здесь другая, но предлагаемое решение может помочь вам также.

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