是否可以在Windows中排队sendkey命令?

时间:2013-05-16 15:12:48

标签: python clipboard timing sendkeys queuing

我们正在编写一个依赖于从顶层窗口复制和粘贴内容的Python应用程序。 为此,我们发出sendkey命令: Ctrl-Esc用于转到上一个窗口 按Ctrl-A,然后按Ctrl-C复制窗口中的所有文本 并且Cnrl-V将剪贴板内容粘贴到顶部窗口。 不幸的是,我们有时遇到时间问题。

是否有某种方法可以对SendKey命令进行排队 Cntl-A等待Alt-Esc,然后等待 Cntl-C等到Cntl-A完成? 或者也许有一种方法可以在发送下一个命令之前知道每个命令何时完成?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不,我不这么认为。你在这里谈论单独的消息队列。 Alt + Esc是一个全球热键,可能由Windows资源管理器处理。 Ctrl + A和Ctrl + C由源应用程序处理,应按顺序处理。但是,在Ctrl + C之后会出现延迟,因为必须锁定,清除和更新剪贴板,然后将剪贴板通知消息发送到剪贴板通知链上注册的所有应用程序,以及较新的剪贴板通知API 。在所有这些应用程序都有机会对数据作出反应之后,然后使用Ctrl + V进行粘贴是安全的 请注意,如果您运行的是任何类型的远程桌面软件,则还必须等待OTHER SYSTEMS对剪贴板通知做出反应,其中包括通过网络同步剪贴板数据。 现在你明白为什么这很难。抱歉,这是个坏消息。