Win32 SendKeys.SendWait(“keys”)最小化应用程序
本文关键字:最小化 应用程序 keys SendKeys SendWait Win32 | 更新日期: 2023-09-27 18:33:33
我想使用 SendKeys.SendWait("keys")
向最小化或不可见的应用程序发送一些击键。
从实验上讲,它似乎只有在我将其发送到的应用程序具有焦点并且可见时才有效。我尝试在应用程序不可见时给予它焦点,但无济于事。我希望我错过了一些东西。有什么办法可以做到这一点吗?
背景:
我正在尝试强制不支持静默安装的第三方安装包尽可能安静和自动化。我联系了创建安装程序的人,他们没有启用静默安装,也不会发布新的安装。
安装程序是一个 InstallAnywhere 包,用于启动 Java AWT。因此,Spy++ 不会向我显示按钮的 ID。我唯一得到的是主窗口的句柄,这让我相信我必须使用SendKeys.SendWait("keys")
发送密钥才能获得所需的自动化。
我可以让它使用SendKeys.SendWait("%n")
完成安装(对于"Alt-N"使其按"下一步"按钮(,但我想隐藏窗口。因为我无法判断特定阶段何时完成,所以我会定期轮询它,并按相应的键。这是一个巨大的黑客,但我还没有找到更好的选择。问题是,我不想最小化然后恢复这些按键中的每一个。一定有比这更好的方法,对吧?
在 Windows 7 上使用 C# .NET 4.0。
不幸的是,键盘输入会进入活动窗口,因此任何模拟键盘输入的行为方式都相同。
如果他们添加了辅助功能挂钩,则可以使用 UI 自动化框架。这是雷蒙德博客的快速示例。