0

我有一个本地开发的应用程序(Master),它定义了一堆热键。我需要使用另一个外部应用程序(控制)使应用程序自动化。我无法重建 Master 应用程序,它运行,已经安装并且不能被弄乱。

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

所以,我想我可以使用 SendKeys.SendWait 或 SendKeys.Send 来发送命令。虽然我的代码适用于其他应用程序(例如记事本),但它不适用于我的自定义应用程序 Master。这可能有多种原因 - Master 年龄较大,混合了 .NET、C++...一些低级视频控件...谁知道幕后的内容。

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

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

4

1 回答 1

0

问题不在于 SendKeys。

我尝试了 SendKeys.Send、SendKeys.SendWait、SendInput 和 keybd_event。

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

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

于 2011-09-11T05:03:53.533 回答