我感到沮丧。无论我的应用程序是否专注,我花了数小时寻找一段好的代码来捕获任何窗口中的按键事件。我需要创建一个应用程序在后台工作以捕获F5键。有没有人有任何代码?在VB.NET中捕获按键事件
-1
A
回答
1
下面的评论中还检查了Lucianovici手记
我知道这是所有C#和OP问VB.Net,但概念是相同的...
我写了一个简单的实用程序,使用this project处理全球按键。下载库并在项目中添加对其的引用,然后导入Gma.UserActivityMonitor
命名空间
在表单加载事件中添加处理程序。
HookManager.KeyDown += KeyDown;
HookManager.KeyUp += KeyUp;
在这些方法中,我正在寻找要按的控制键。
void KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.LControlKey || e.KeyCode == Keys.RControlKey)
{
//Do Stuff
}
}
void KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.LControlKey || e.KeyCode == Keys.RControlKey)
{
//Do Stuff
}
}
随着写入的方式,按键仍然可供其他应用程序处理。如果您想“捕获”该键并暂停其他应用程序的处理,请在您的事件处理程序中将Handled属性设置为true。
e.Handled = true;
编辑:上面的代码转换为VB.Net
要在VB.Net添加处理程序,您使用AddHandler
和AddressOf
。
AddHandler HookManager.KeyDown AddressOf KeyDown
功能KeyDown
和KeyUp
是这样的。
Sub KeyDown(ByVal sender as Object, ByVal e as KeyEventArgs)
If e.KeyCode = Keys.LControlKey Or e.KeyCode = Keys.RControlKey Then
'Do Stuff
End If
End Sub
0
您必须使用Form keypress事件...在哪个表单上要捕获F5按键事件。
检查: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress(v=vs.71).aspx
0
为了捕获按键事件当表单没有焦点,你将需要进入一些非常低级的东西。全局键盘钩子通常不可能在C#或VB.NET,但这里的文章,可以帮助你:
Managing Low-Level Keyboard Hooks in VB .NET
*请务必在文章
0
有的this topic重复,这是我与细节的VB.NET溶液回答。它使用Tim Coker建议的相同的Hook库。
相关问题
- 1. 捕获“shift + tab”按键事件
- 2. WPF子类捕获按键事件
- 3. MVC Html.BeginForm捕获按键事件
- 4. 未捕获触发的按键事件?
- 5. 捕获按键事件使用xlib
- 6. 在Silverlight中捕获关键事件
- 7. vb.net按键事件(Visual Studio 2010中)
- 8. VB.NET中文本框的按键事件
- 9. Griffon捕获关键事件
- 10. 捕获Android软键事件
- 11. 使用VB.Net捕获所有键盘事件
- 12. 捕获按钮事件
- 13. JQuery按键与keydown事件捕获所有键码
- 14. wxpython捕获wx.Frame中的键盘事件
- 15. 捕获iPhone键盘按下按钮事件的形式
- 16. 如何捕获wxPropertyGrid中的每个按键的事件
- 17. 如何在非活动选项卡上捕获按键事件
- 18. Pyhook在6次按下后停止捕获关键事件
- 19. 从VB6转换按键事件到VB.NET
- 20. VB.net中的全局热键捕获
- 21. 键盘按键捕获
- 22. 如何捕获Windows Mobile 6上的硬件按键事件?
- 23. NSMenu打开时捕捉按键事件
- 24. 在ngTable中捕获事件
- 25. 在vb.net中最大化或恢复事件之前捕获
- 26. 如何在VB.NET中的listview上捕获autosize双击事件?
- 27. 获取按键事件
- 28. 在黑莓键盘上捕获按键
- 29. 在java面板中捕获按键
- 30. 如何在Ruby中捕获按键?
我对VB.NET真的很陌生,有没有什么办法可以给我一个原始的,简单的VB.NET答案? – Logan