Python 如何使用';SetText';在命令提示符下?
[1] 代码是:Python 如何使用';SetText';在命令提示符下?,python,pywinauto,Python,Pywinauto,[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] 输出为:
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的,而不是针对命令行的
通常,您可以使用标准模块子流程
(classPopen
)通过管道与cmd.exe进程进行交互
您可以尝试以下操作:
Popen
运行cmd.exe
Connect(path='cmd.exe')
使用pywinautop.stdin.write(someInput)
发送密钥,其中p
是Popen
对象这里有一种解决一些问题的方法:什么是应用程序<代码>cmd.exe?顺便说一句,带_spaces=True的
不是SetText
的参数。代码不正确。[1]是。cmd exe。[2] “with_spaces=True”是“typekeys”的再现。我把它拿走了。非常感谢你帮我。我找到了一种将文本写入非活动CMM并进行提示的方法。导入win32gui导入win32con导入win32api handle=win32gui.FindWindow(无,u'Administrator:Environment')打印“测试”中文本的句柄:win32api.SendMessage(handle,win32con.WM_CHAR,ord(text),0)很棒的发现!我们将使用WM\u CHAR
在pywinauto中实现SendChars
方法。是否有某种方法可以使用某些消息检索控制台文本?如果你能找到它,请告诉我们。