如何在Windows窗体应用程序中实现键盘按键

本文关键字:实现 键盘 应用程序 Windows 窗体 | 更新日期: 2023-09-27 18:23:44

我想在c#windows窗体应用程序中实现键盘按键命令。假设达到某个值,我想使用windows窗体应用程序实现按下的键"L"。这可能吗?怎么做?

如何在Windows窗体应用程序中实现键盘按键

这可能对有用

然而,更好的方法可能是将窗体的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窗体应用程序中接收到的信号来实现键盘按键。请告诉我这是否可能?我不需要从内部识别按键事件,但我需要实现按键来自应用程序