我想使用SendKeys.SendWait("keys")
向最小化或不可见的应用程序发送一些击键。
实验上,它只在我发送给它的应用程序具有焦点并且可见时才起作用。我尝试将应用程序作为焦点,当它不可见时,无济于事。我希望我错过了什么。 有没有办法做到这一点?
背景:
我试图强制不支持静默安装的第三方安装包尽可能安静和自动化。我联系了创建安装程序的人,他们没有启用静默安装,也不会发布一个新的。
安装程序是一个InstallAnywhere程序包,用于旋转Java AWT。因此,Spy ++不会显示按钮的ID。我唯一得到的是主窗口的句柄,这让我相信我必须使用SendKeys.SendWait("keys")
发送密钥才能获得我需要的自动化。
我可以使用SendKeys.SendWait("%n")
来完成安装(对于“Alt-N”使其按下“下一步”按钮),但我想要隐藏窗口。因为我无法判断某个特定阶段何时完成,所以我会定期轮询它,并按下相应的键。这是一个巨大的黑客,但我还没有找到更好的选择。问题是,我不希望最小化然后恢复每个这些按键。必须有比这更好的方法,对吗?
在Windows 7上使用C#.NET 4.0。
答案 0 :(得分:1)
不幸的是,键盘输入进入活动窗口,因此任何模拟键盘输入的行为都会以相同的方式运行。
如果他们添加了辅助功能挂钩,那么您可以使用UI automation framework。以下是Raymond's blog的快速示例。