【发布时间】:2010-05-21 15:49:04
【问题描述】:
我有一个 Windows 应用程序,我使用发送键从一个窗口导航到另一个窗口。我的发送键序列就像在我的应用程序中激活另一个窗口,并将击键发送到该窗口。但是我发送的击键在我激活另一个窗口的同一个窗口中得到更新。
但在几次击键后,它会转到另一个窗口。似乎发送密钥的同步问题。有没有办法指定当前send key的操作完成后,再发送下一个sendkey。
【问题讨论】:
我有一个 Windows 应用程序,我使用发送键从一个窗口导航到另一个窗口。我的发送键序列就像在我的应用程序中激活另一个窗口,并将击键发送到该窗口。但是我发送的击键在我激活另一个窗口的同一个窗口中得到更新。
但在几次击键后,它会转到另一个窗口。似乎发送密钥的同步问题。有没有办法指定当前send key的操作完成后,再发送下一个sendkey。
【问题讨论】:
我发现 sendkeys 是不可靠的。请改用input simulator。
【讨论】:
您是否尝试过使用SendKeys.SendWait。这将等到发送密钥并处理完操作后再继续。
既然窗口在您自己的应用程序中,为什么不提供一组函数来执行这些操作,而不是使用 SendKeys。函数可以在创建并激活窗口后创建窗口,您可以通过处理 Activated 事件检测到,然后您可以使用 SendKeys 将击键发送到新窗口,如果您真的需要,否则再次在窗口类,您可以调用它来执行击键将引发的操作。您可能可以定义一个常见的interface,您的窗口实现该interface 以促进这种交互。
【讨论】: