2014-09-21 505 views
4

如何从ms计算器文本字段获得结果,该字段显示任何数学运算的结果? Swapy(v.0.4.3)告诉我这个文本字段的值是'Static2',运行这么简单的脚本后我得到空列表。这里我的代码:从文本字段中使用pywinauto获取值

from pywinauto import * 
n=[] 
app=Application() 
app.start_("calc.exe") 
app.calc.Button11.ClickInput() 
app.calc.Button20.ClickInput() 
app.calc.Button11.ClickInput() 
app.calc.Button21.ClickInput() 
n=app.calc.Static2.Texts()#here i expected to get the number 
print n 

我在哪里做错了?

回答

5

尝试

text = app.calc.Static3.WindowText() 

正如我在间谍++看到,Notepad.exe的(Win7的版本),有4个静态箱。第三个文本非空。 因此,您需要通过“Static3”名称来识别它,因为“Static1”和“Static0”标识相同的静态框(这有点奇怪,是的 - 它是pywinauto功能)。

对于更详细的调查使用

app.calc.PrintControlIdentifiers() 
+0

PrintControlIdentifiers()给了我作为swapy做这个文本字段的名称和相同的信息不幸的是你的代码什么也没有改变。顺便说一句,为什么你在谈论记事本;)什么是Spy ++?它是交换模拟? – 2014-09-22 19:22:56

+0

Spy ++是一款与MS Visual Studio一起发布的工具。 PrintControlIdentifiers()打印了多少静态? 只需尝试Static1,Static2,Static3,Static4一步一步。其中一个应该包含正确的文本。 – 2014-09-23 09:08:32

+0

'app.calc.Window_(class_name ='Static',ctrl_index = 5).WindowText()'应该有保证。我已经检查过了。 – 2014-09-23 09:17:32