2014-09-21 504 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