自定义热键,即使是不专心的形式

时间:2014-10-03 18:56:29

标签: vb.net timer focus keydown keycode

我尝试这个有点问题。我必须承认我仍然是新手编程。好吧,我设法以这种方式(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

但是通过这种方式,即使它有效,它也不会让我自定义关键快捷键(只有Control,shift和其他)。

我也这样做尝试不同的东西:

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。

真的非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

这可能不是你喜欢的答案,但它是答案。在 .NET 中,当您的应用程序没有焦点并且您无法在应用程序窗口之外获取鼠标事件时,您无法获得密钥通知。如果您查看“键盘挂钩”,您应该已经阅读了关于VB的一些重要事实。

Global hooks are not supported in the .NET Framework