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#包装器,并且发现它很容易使用。

这是我为将AutoIt集成到C#项目而编写的快速指南的链接。

获得包装器和引用后,可以使用以下命令发送“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还允许您以编程方式控制鼠标。