【发布时间】:2013-10-02 23:29:15
【问题描述】:
我想使用SendKeys.SendWait("keys") 将一些击键发送到最小化或不可见的应用程序。
在实验中,它似乎只在我发送它的应用程序具有焦点并且可见时才起作用。我尝试在应用程序不可见时为其提供焦点,但无济于事。我希望我错过了什么。 有没有办法做到这一点?
背景:
我试图强制不支持静默安装的第 3 方安装包尽可能安静和自动化。我联系了创建安装程序的人,他们没有启用静默安装,也不会正在发布一个新的。
安装程序是一个启动 Java AWT 的 InstallAnywhere 包。因此,Spy++ 不会向我显示按钮的 ID。我唯一得到的是主窗口的句柄,这让我相信我必须使用 SendKeys.SendWait("keys") 发送密钥才能获得所需的自动化。
我可以使用SendKeys.SendWait("%n") 让它完成安装(对于“Alt-N”使其按下“下一步”按钮),但我想隐藏窗口。因为我不知道它何时完成特定阶段,所以我定期轮询它,然后按相应的键。这是一个巨大的黑客,但我还没有找到更好的选择。问题是,我不想为每个按键最小化然后恢复。一定有比这更好的方法吧?
在 Windows 7 上使用 C# .NET 4.0。
【问题讨论】:
标签: c# winapi silent-installer