2016-04-13 10 views
0

トレイアイテムからサブメニューにアクセスしようとしています。pywinauto - トレイからサブメニューにアクセス

これは私がメニューをクリックする方法である:

import pywinauto 
from pywinauto import taskbar 
app = pywinauto.application.Application() 
taskbar.RightClickSystemTrayIcon('App tray icon', exact=True) 
app.PopupMenu.MenuItem("SomeMenuItem").ClickInput() # Clicks an item from the app's main tray menu 

私は成功せず、pywinautoのmenuwrapperドキュメントからさまざまな機能を使用してみました。 は、それは、これらの機能は、唯一のアプリケーションのメニューのために働くことは可能です?: https://pywinauto.github.io/docs/code/pywinauto.controls.menuwrapper.html

ここで私がアクセスしたいサブメニューの種類の例である:あなたがアプリケーションに接続する必要が

enter image description here

答えて

1

処理を実行する前に実行してください。あなたのコードでは見逃しているようです(もちろん、実際に起こっていることを理解するのに非常に便利です)。そのようになっているはずのコードを想定します。

import pywinauto 
from pywinauto import taskbar 
app = pywinauto.application.Application() 

# start/connect is required before any action 
app.connect(path='your.exe') 

taskbar.RightClickSystemTrayIcon('App tray icon', exact=True) 
app.PopupMenu.MenuItem("SomeMenuItem").ClickInput() 
app.PopupMenu.MenuItem("SomeMenuItem->sub-menu item").ClickInput() 
+0

を私はあなたのコードを試してみましたが、サブメニューをクリックしたとき、私はこのエラーを取得: 'ファイル「C:\ Python27 \ libには\サイト・パッケージを\ pywinautoコントロール\ \ menuwrapper .py "、86行目、チェック中
raise MenuInaccessible pywinauto.controls.menuwrapper.MenuInaccessible' – mhd

+0

おそらくメニューはネイティブではないかもしれません(おそらくWPFアプリですか?)。あなたは 'Inspect.exe'のメニュー項目のテキストを見ることができますか? –

+0

'Inspect.exe'はここ(Win7 x64)にあります:' C:¥Program Files(x86)¥Windows Kits¥8.1¥bin¥x86¥inspect.exe' –

関連する問題