2011-02-10 106 views
2

我想用pywinauto框架來控制windows媒體播放器。我可以訪問菜單,例如使用app.WindowsMediaPlayer.MenuSelect(「查看 - > GoTo->庫」) ,但是當我嘗試訪問庫項目時,使用對話框無法這樣做。 同樣左側任務欄要直接訪問它,而無需訪問菜單,點擊左側的按鈕.... 需要幫助這個...Pywinauto控制媒體播放器

+0

這裏又是一個例子,希望對大家有幫助 http://stackoverflow.com/q/31884590/4540965 – 2015-08-11 14:00:10

回答

0
>>> wmp.WindowsMediaPlayer.MenuSelect("View->Library") 
>>> wmp.WindowsMediaPlayer.print_control_identifiers() 
Control Identifiers: 
WMPAppHost - 'WMPAppHost' (L40, T152, R731, B648) 
     'WMPAppHost' 'WMPAppHostWMPAppHost' 
WMP Skin Host - '' (L40, T188, R731, B588) 
     '' '0' '1' 'WMP Skin Host' 
ATL:5BB55150 - 'LibraryContainer' (L40, T188, R731, B588) 
     'ATL:5BB55150' 'LibraryContainer' 'LibraryContainerATL:5BB55150' 
ATL:5BB550C0 - '' (L190, T220, R193, B588) 
     '2' 'ATL:5BB550C0' 
ToolbarWindow32 - '' (L40, T188, R40, B188) 
     '3' 'Toolbar' 'Toolbar0' 'Toolbar1' 
ToolbarWindow32 - 'View Toolbar' (L416, T189, R461, B219) 
     'Toolbar2' 'View Toolbar' 'View ToolbarToolbar' 
ToolbarWindow32 - '' (L705, T193, R729, B215) 
     '4' 'Toolbar3' 
ToolbarWindow32 - 'Command Toolbar' (L44, T189, R414, B219) 
     'Command Toolbar' 'Command ToolbarToolbar' 'Toolbar4' 
Edit - 'Search' (L465, T197, R663, B213) 
     '5' 'Edit' 
ToolbarWindow32 - '' (L663, T194, R689, B214) 
     '6' 'Toolbar5' 
ToolbarWindow32 - '' (L689, T194, R703, B214) 
     '7' 'Toolbar6' 
SysListView32 - 'PrimaryListView' (L193, T220, R731, B588) 
     'ListView' 'PrimaryListView' 'PrimaryListViewListView' 
SysHeader32 - '' (L193, T220, R716, B244) 
     '8' 'Header' 
SysTreeView32 - 'Library Treeview' (L40, T220, R190, B538) 
     'Library Treeview' 'Library TreeviewTreeView' 'TreeView' 
ATL:5BB62F40 - 'ServiceBar' (L40, T538, R190, B588) 
     'ATL:5BB62F40' 'ServiceBar' 'ServiceBarATL:5BB62F40' 
ToolbarWindow32 - 'Service Selector' (L46, T541, R184, B585) 
     'Service Selector' 'Service Selector0' 'Service Selector1' 'Service SelectorToolbar' 'Servic 
e SelectorToolbar0' 'Service SelectorToolbar1' 'Toolbar7' 
ToolbarWindow32 - 'Service Toolbar' (L184, T541, R184, B585) 
     'Service Toolbar' 'Service ToolbarToolbar' 'Toolbar8' 
ToolbarWindow32 - 'Service Selector' (L184, T541, R184, B585) 
     'Service Selector2' 'Service SelectorToolbar2' 'Toolbar9' 

的PrimaryListView看起來可能是我們所需要的 - 所以我們通過圍繞該控件繪製一個框來檢查。

>>> wmp.WindowsMediaPlayer.PrimaryListView.DrawOutline() 
>>> 

看起來不錯:)。因此,讓我們看看我們是否可以從列表視圖

>>> wmp.WindowsMediaPlayer.PrimaryListView.ItemCount() 
1217 

到目前爲止好拿到物品

>>> for item_index in range(wmp.WindowsMediaPlayer.PrimaryListView.ItemCount()): 
... print wmp.WindowsMediaPlayer.PrimaryListView.GetItem(item_index) 
... 
{'text': u'', 'state': 0L, 'indent': 240, 'image': 0} 
{'text': u'', 'state': 0L, 'indent': 240, 'image': 0} 
{'text': u'', 'state': 0L, 'indent': 240, 'image': 0} 
... 

嗯=現在看起來並不太好:( 在那裏我沒有更多的被卡住研究