C#SendKeys.SendWait()并不总是有效

我正在尝试创建一个将密钥发送到外部应用程序的应用程序,在本例中为aerofly FS.我之前使用过SendKeys.SendWait()方法,但这一次,它并没有像我想要的那样工作.我想给应用程序发送一个“G”按键并用记事本测试它我得到G的.但是在空中FS中根本没有收到任何东西.按键盘上的G确实有效.

这是我的代码处理输入数据(来自Arduino)和发送击键,

private void handleData(string curData)
{
    if (curData == "1")
        SendKeys.SendWait("G");
    else
    { }
}

最佳答案 我也遇到过SendKeys不能为我工作的外部应用程序.

我可以说,一些应用程序,如浏览器中的applet,希望接收密钥,然后暂停,然后是密钥,我认为不能用SendKeys完成.

我一直在使用AutoIt库的C#包装器,发现它很容易使用.

这是我为integrating AutoIt into a C# project写的快速指南的链接.

获得包装器和引用后,可以使用以下命令发送“G”:

private void pressG()
{
   AutoItX3Declarations.AU3_Send("{g}");
}

或暂停,

private void pressG()
{
   AutoItX3Declarations.AU3_Send("{g down}", 0);
   AutoItX3Declarations.AU3_Sleep( 50 );          //wait 50 milliseconds
   AutoItX3Declarations.AU3_Send("{g up}", 0);
}

AutoIt还允许您以编程方式控制鼠标.

点赞