2014-10-03 3 views
0

У меня проблемы с этим. Должен признаться, что я все еще начинаю программировать. Ну, мне удалось за это сделать таким образом (VB.NET):Пользовательская горячая клавиша даже с несфокусированной формой

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick If My.Computer.Keyboard.CtrlKeyDown Then MORE IRRELEVANT CODE HERE End If End Sub

Но таким образом, даже если она работает, то не позволяйте мне customice клавиша быстрого доступа (только управления, сдвиг и другие).

Я сделал это слишком для попробовать Дифференц вещи:

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown If e.KeyCode = GlobalVariables.own_key Then MORE IRRELEVANT CODE HERE End If End Sub

Я даю значение GlobalVariables.own_key от другой кнопки. Это работает отлично, но только если программа имеет фокус.

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

Я попытался понять «клавиатурный крючок», но я должен признать, что я не разбирался в этом и не мог справиться с работой ни с одним из них.

Использование VB.net 2012

Действительно спасибо за вашу помощь

ответ

0

Это не может быть ответом вам нравится, но это ответ. В .NET вы не можете получать уведомления о ключах, когда ваше приложение не имеет фокуса, и вы не можете получать события мыши вне окон приложений. Если вы посмотрели на «Ключ для клавиатуры», вы должны были прочитать этот маленький важный факт относительно VB.

Global hooks are not supported in the .NET Framework

+0

Большое спасибо за ответ. Это объясняет, почему «клавиатурные крючки» не работают для меня. Но вопрос ... Мне удалось получить ключи уведомлений, в то время как программы не были фокусом, просто не можете настроить ключ (первый пример). – vegetamaker

+0

Возможно, вы найдете другие ключи, если они нажаты, используя ваш таймер и код My.Computer.Keyboard ... но он не будет надежным. Это, как часто ваш таймер должен запускаться, чтобы зафиксировать тот факт, что нажатие обычного ключа при вводе этого комментария. – Steve

+0

Хорошая точка. Я нашел эти проблемы уже время от времени. Большое спасибо за все ответы. – vegetamaker

Смежные вопросы