pywinauto type_keys() 不会发送所有密钥

pywinauto type_keys() won't send all keys

我正在做一些 windows 自动化,我需要使用 'Open' 对话框将文件导入工具。我有这个代码

 w_open_handle = pywinauto.findwindows.find_windows(title=u'Open', class_name='#32770')[0]
 w_open = app.window_(handle=w_open_handle)

 # Enter filename in edit box
 w_open['File &name'].type_keys("export.txt")

当我 运行 我注意到只有键 "rt.txt" 被发送到 文件名 window 上的编辑框。我尝试了其他名称而不是 "export.txt" 但在每种情况下都不会发送前几个密钥。我认为打开对话框和发送密钥之间的一小段延迟可能会有所帮助,但无济于事。

谁能告诉我这是怎么回事?

Python 3.4.5(我需要这个版本因为有其他包依赖)

Windows 10

试试这个

from pywinauto import keyboard
keyboard.send_keys("export.txt")

type_keys()的可能影响:

  • 里面调用了.set_focus()
  • 可以找到不正确的控件(使用.draw_outline()方法很容易检查)。

更可靠的设置整个文本的方法是.set_text("..."),它仅适用于特定的控件类型。