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还允许您以编程方式控制鼠标。