我想在c#windows窗体应用程序中实现键盘按键命令。假设达到某个值,我想使用windows窗体应用程序实现按下的键"L"。这可能吗?怎么做?
这可能对有用
然而,更好的方法可能是将窗体的KeyPreview
属性设置为true
,然后将代码放入窗体的keyDown
事件中(并将e.Handled=true设置为true,以防止键事件传递给具有焦点的控件)。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.L)
{
//Do here
}
}
您还想查看MSDN:在窗体级别处理键盘输入,它说明了Windows窗体提供了在消息到达控件之前在窗体级别处处理键盘消息的能力。
编辑
WM_KEYDOWN:当按下非系统键时,此消息将以键盘焦点发布到窗口。非系统键是指未按下ALT键时按下的键。
SendKeys:使用SendKeys向活动应用程序发送击键和击键组合。无法实例化此类。要向类发送击键并立即继续程序流,请使用send。要等待按键启动的任何进程,请使用SendWait。
所以当你接收到来自任何设备的信号时
System.Windows.Forms.SendKeys.Send("S");
和按下键
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.S)
{
//Shooting Code
}
else if (e.KeyCode == Keys.L)
{
//Some Other Code
}
}
除此之外,在C#中编程生成按键事件?还将为您提供实现任务
实际上,我通过蓝牙从Arduino和一些传感器远程连接。根据这些数据,我有一个使用"construct2"开发的游戏,我需要控制它。游戏使用键盘键来控制它。
在游戏中,当按下"S"键时,它会射击目标,当按下另一个键时,会做其他事情。所以我基本上需要做的是根据Windows窗体应用程序中接收到的信号来实现键盘按键。请告诉我这是否可能?我不需要从内部识别按键事件,但我需要实现按键来自应用程序