我有一个自行开发的应用程序(Master),它定义了一堆热键。我需要使用另一个外部应用程序(Control)自动化应用程序。我无法重建Master应用程序,它运行,已经安装,不能搞砸。
如果我使用键盘,使用Master上的热键就像魅力一样。
所以,我想我使用SendKeys.SendWait或SendKeys.Send来发送命令。虽然我的代码可以与其他应用程序(例如记事本)一起使用,但它不适用于我的自定义应用程序Master。这可能有很多原因 - Master比较老,有.NET,C ++混合......一些低级别的视频控件......谁知道幕后的内容。
我需要获得更高水平的东西。我需要能够发送击键,就好像它们来自键盘本身一样。我不希望计算机能够区分发送密钥的物理键盘和发送密钥的应用程序。
我可以使用什么,它会有什么不同?
答案 0 :(得分:0)
问题不在于SendKeys。
我尝试了SendKeys.Send,SendKeys.SendWait,SendInput和keybd_event。
我后来意识到激活应用程序和发送击键的时间之间的时间太短。我等了200ms,但只是把它增加到500ms我解决了我的问题。
由于嵌入式视频播放器,应用程序需要很长时间才能绘制。给它另外300ms允许它为我发送它的击键做好准备。