C# 我的应用程序无法识别SendKeys或SendInput发送的击键,但可以识别键盘发送的击键

C# 我的应用程序无法识别SendKeys或SendInput发送的击键,但可以识别键盘发送的击键,c#,keyboard,sendkeys,sendinput,C#,Keyboard,Sendkeys,Sendinput,我有一个自制的应用程序主程序,它定义了一系列热键。我需要使用另一个外部应用程序控件自动运行应用程序。我无法重建主应用程序,它正在运行,已安装,无法处理 如果我使用键盘,在Master上使用热键就像一种魅力 因此,我想我可以使用SendKeys.SendWait或SendKeys.Send来发送命令。虽然我的代码与其他应用程序(如记事本)配合良好,但与我的自定义应用程序Master不配合。这可能是因为一些原因-硕士是老的,有.NET,C++混合…一些低级视频控制。。。谁知道被子里藏着什么 我需要更

我有一个自制的应用程序主程序,它定义了一系列热键。我需要使用另一个外部应用程序控件自动运行应用程序。我无法重建主应用程序,它正在运行,已安装,无法处理

如果我使用键盘,在Master上使用热键就像一种魅力

因此,我想我可以使用SendKeys.SendWait或SendKeys.Send来发送命令。虽然我的代码与其他应用程序(如记事本)配合良好,但与我的自定义应用程序Master不配合。这可能是因为一些原因-硕士是老的,有.NET,C++混合…一些低级视频控制。。。谁知道被子里藏着什么

我需要更高层次的东西。我需要能够发送击键,就像它们来自键盘本身一样。我不希望计算机能够区分发送按键的物理键盘和发送按键的应用程序


我可以使用什么?它会有什么不同?

问题不是SendKeys

我尝试了SendKeys.Send、SendKeys.SendWait、SendInput和keybd_事件

我后来意识到激活应用程序和发送击键之间的时间太短了。我等了200毫秒,但只要把这个时间增加到500毫秒,我就解决了我的问题


由于嵌入式视频播放器,该应用程序需要很长时间才能绘制。再给它300毫秒,它就可以为我发送的按键做好准备。

我不知道这是否能解决你的问题,但我从未失败过:@Marco。谢谢你的建议。事实上,我们明天将尝试使用自动热键,尽管我真的希望我能找出问题所在。你在Vista上吗?已为.NET Framework 3.0更新SendKeys类,以便在运行于Windows Vista的应用程序中使用它。Windows Vista增强的安全性(称为用户帐户控制或UAC)会阻止以前的实现按预期工作。这是WinXP,我们使用的是.NET3.5。同样,我们可以控制机器上的其他应用程序,但不是这个。FWIW,你仍然有一个竞赛条件。同意。它将帮助我们通过12小时后开始的贸易展,但最终我们将集成到应用程序本身