2017-06-09 362 views
-2
import time 
from pywinauto.application import Application 

# Run a target application 
app = Application().start("C:\ProgramFiles\BatonMediaPlayer\BatonMediaPlayer.exe") 
time.sleep(5) 

# Select a menu item 
print app.BatonMediaPlayer.Children() 
print "app.BatonMediaPlayer.SetFocus()", app.BatonMediaPlayer.SetFocus() 
time.sleep(1) 

app.BatonMediaPlayer.menu_select('Help->About') 
+0

您是否嘗試以管理員身份運行您的腳本? 「Spy ++」或「Ins​​pect.exe」可以看到這些控件嗎?請提供更多細節。 –

+0

我沒有運行它作爲管理員,但當我做了IsActive()顯示正確,但MenuSelect功能仍然顯示「沒有菜單」的錯誤。 –

+0

我正在嘗試使用Inspect.exe。 –

回答

0

好的,如果這是Qt5應用程序,WireShark example at lines 58-63可能會幫助您調整您的應用程序的代碼。它應該看起來像這樣:

import time 
from pywinauto.application import Application 

# Run a target application 
app = Application(backend='uia').start(r"C:\ProgramFiles\BatonMediaPlayer\BatonMediaPlayer.exe") 
time.sleep(5) 

win = app['Dialog'] # or app.ApproximateMainWindowTitle 
win['Help'].select() # exapnd submenu 
submenu = app[''] # Dropdown submenu is a top-level window 
submenu['About'].select() # or .click_input() 

希望它的工作方式與WireShark相同。

+0

謝謝你。 –

+0

但是它給了我NameError:name'win'沒有定義。 –

+0

對不起,錯過了這一行:'win = app ['Dialog']'(編輯了答案)。 –

相關問題