我如何为按钮制作热键,这会激活它,就像按下按钮一样?
请记住,我是编程新手。
答案 0 :(得分:3)
假设你想要一个普通的alt-hotkey,在WPF中你只需在Xaml中用你想要的热键在下划线之前命名,例如:
<Button x:Name="MyButton">_Hotkey</Button>
按Alt + H将激活(意味着,单击)按钮。
答案 1 :(得分:2)
您可以在Windows中使用GetKeyState函数。 Windows函数必须由API引用,因为它们默认不包含在.NET Framework中。
假设您只需要检测一次击键,GetKeyState或GetAsyncKeyState可能是最好的。 GetKeyState将等待,直到按下某个特定键,然后获取该键的状态,并且GetAsyncKeyState将在调用该函数时获取键的状态。
GetKeyState的声明如下:
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
Public Shared Function GetKeyState(ByVal virtualKeyCode As Integer) As Short
End Function
将它放在您希望使用该功能的类中。
该函数的virtualKeyCode参数是您尝试获取状态的键的键代码。您可以在此处查看所有虚拟键码的列表:http://msdn.microsoft.com/en-us/library/ms927178.aspx
GetAsyncKeyState声明与GetKeyState声明几乎相同。
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
Public Shared Function GetAsyncKeyState(ByVal virtualKeyCode As Integer) As Short
End Function
使用GetKeyState和GetAsyncKeyState非常简单从Microsoft自己的文档(http://msdn.microsoft.com/en-us/library/ms646293(v=vs.85).aspx)中可以看出:
如果函数成功,则返回值指定自上次调用GetAsyncKeyState以来是否按下了键,以及该键当前是向上还是向下。如果设置了最高有效位,则键为关闭,如果设置了最低有效位,则在上一次调用GetAsyncKeyState之后按下该键。但是,你不应该依赖这最后的行为;有关更多信息,请参阅备注。
鉴于以上信息,这里是GetAsyncKeyState用法的一个例子:
Dim X As Integer = GetAsyncKeyState(KeyCodeHere)
If X = 1 Or X = -32767 Then
'your keycode was pressed or released.
End If
如果您需要在用户按任何类型的键时收到通知,键盘挂钩会更合适。
最后,您还可以使用RegisterHotkey API在按下特定热键时通知Windows。
答案 2 :(得分:0)
Alt + Key是一种方式,就像上面发布的AresAvatar一样。
如果您想要更多可能性,可以使用KeyBinding类
答案 3 :(得分:0)
您是在开发桌面还是网络? 对于桌面,请尝试 MY.COMPUTER.KEYBOARD。 ..... 封装了上面提到的很多(全部?)的GetKeyState。
像 AltKeyDow, ShiftKeyDown CtrlKeyDoen ScrollLock键 数字锁定