繁体   English   中英

如何在命令提示符下使用“ SetText”?

[英]How can I use 'SetText' in command prompt?

[1]代码为:

import pywinauto
app = pywinauto.Application()
mainApplication = app.window_(title_re = ".*Environment.*")
mainApplication.Minimize()
mainApplication.Edit.SetText("test", with_spaces=True)
mainApplication.Edit.SetText("{ENTER}")

[2]输出为:

  File "C:\Python27\lib\site-packages\pywinauto\application.py", line 239, in __getattr__
    ctrls = _resolve_control(self.criteria)
  File "C:\Python27\lib\site-packages\pywinauto\application.py", line 754, in _resolve_control
    raise e.original_exception
WindowNotFoundError

注意:如果使用'TypeKeys'方法,我不会遇到任何问题,但是我想在应用程序中编写。 即使未将重点放在上面。

不幸的是,cmd.exe在窗口内没有任何控件。 因此,您无法向其发送WM_SETTEXT消息。 这就是SetText无法正常工作的原因。 它永远不会对cmd.exe起作用,因为GUI自动化工具是针对GUI而不是命令行。

通常,您可以使用标准模块subprocess进程(类Popen )通过管道与cmd.exe进程进行交互。

您可以尝试以下方法:

  1. 通过Popen运行cmd.exe
  2. 使用pywinauto Connect(path='cmd.exe')
  3. 调用app.Window_().Minimize()
  4. 发送用密钥p.stdin.write(someInput)其中p是一个Popen对象。

当使用管道时,输入流和输出流可能会陷入死锁。 这是解决某些问题的一种方法: 从python内部运行交互式命令

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM