pywinauto は、Microsoft Windows GUI を自動化するための Python モジュールのセットです。最も単純な場合、マウスやキーボードのアクションを Windows のダイアログやコントロールに送信できますが、テキスト データの取得など、より複雑なアクションもサポートされています。
内部的にサポートされているテクノロジ: Win32 API ( backend="win32"
; デフォルトで使用されます)、MS UI オートメーション ( backend="uia"
)。ユーザー入力エミュレーション モジュールのmouse
とkeyboard
Windows と Linux の両方で動作します。
リポジトリにスターを付けるか、寄付をしてください。
これは私たち全員の趣味のプロジェクトであるため、皆様のご協力は貴重です。新機能の開発は勤務時間外に行っています。
pip install -U pywinauto
実行します (依存関係は自動的にインストールされます)シンプルで、結果として得られるスクリプトは非常に読みやすいものです。なんて簡単なことでしょう?
from pywinauto . application import Application
app = Application (). start ( "notepad.exe" )
app . UntitledNotepad . menu_select ( "Help->About Notepad" )
app . AboutNotepad . OK . click ()
app . UntitledNotepad . Edit . type_keys ( "pywinauto Works!" , with_spaces = True )
explorer.exe
のより詳細な例:
from pywinauto import Desktop , Application
Application (). start ( 'explorer.exe "C: \ Program Files"' )
# connect to another process spawned by explorer.exe
# Note: make sure the script is running as Administrator!
app = Application ( backend = "uia" ). connect ( path = "explorer.exe" , title = "Program Files" )
app . ProgramFiles . set_focus ()
common_files = app . ProgramFiles . ItemsView . get_item ( 'Common Files' )
common_files . right_click_input ()
app . ContextMenu . Properties . invoke ()
# this dialog is open in another process (Desktop object doesn't rely on any process id)
Properties = Desktop ( backend = 'uia' ). Common_Files_Properties
Properties . print_control_identifiers ()
Properties . Cancel . click ()
Properties . wait_not ( 'visible' ) # make sure the dialog is closed
pip install -U Pillow
によって)。これにより、コントロールのスナップショットを作成するためのcapture_as_image()
メソッドを呼び出すことができるようになります。すべてのテストを実行します: python ./pywinauto/unittests/testall.py
プルリクエストは大歓迎です。単体テスト、コーディング規約などの詳細については、「コントリビューション ガイド」を参照してください。
ネイティブ Windows GUI 用の Pywinauto は、最初にMark Mc Mahonによって作成されました。マークは、Python の力を使って多くの素晴らしいアイデアを生活にもたらしました。さらに多くの貢献者がこの素晴らしい API からインスピレーションを得て、開発を継続していきます。
0.6.0 以降、pywinauto は BSD 3 条項ライセンスに基づいて配布されます。 Pywinauto 0.5.4 以前は LGPL v2.1 以降で配布されていました。