web-dev-qa-db-ja.com

Python pyautoguiウィンドウハンドル

Pyautoguiを使用して、ウィンドウへのハンドルを取得して、クリックがそのウィンドウでのみ実行されるようにする方法はありますか?つまり、ウィンドウにフォーカスがない場合、クリックは行われません。さらに、ウィンドウにフォーカスがない場合は、ウィンドウをフォーカスしてからアクションを実行します。

ウィンドウを識別する方法は、ID、ウィンドウタイトルなど、これに似たものにすることができます https://autohotkey.com/docs/commands/WinGet.htm

この種の機能をサポートする他のPythonモジュールはありますか?

6
kronosjt

この種の機能をサポートする他のPythonモジュールはありますか?

https://pywinauto.github.io

https://pywinauto.readthedocs.io/en/latest/#some-similar-tools-for-comparison

enter image description here

6
Claudio

PyAutoGui自体は、そのドキュメントの FAQセクション で、

Q:PyAutoGUIはウィンドウがどこにあるのか、どのウィンドウが表示されているのかを理解できますか?ウィンドウを集中、最大化、最小化できますか?ウィンドウのタイトルを読み取れますか?

A:残念ながらできませんが、これらはPyAutoGUIで計画されている次の機能です。この機能はPyGetWindowという名前のPythonパッケージに実装されています。これは、完了するとPyAutoGUIに含まれます。

PyGetWindow's repo に進むと、まだコードはありませんが、次のポインタを持つ random_notes.txt ファイルがあります。

Windowsでのウィンドウタイトルの検索:

http://stackoverflow.com/questions/37501191/how-to-get-windows-window-names-with-ctypes-in-python

興味深い情報があります。 (私はまだ試していません。)

5
Tom Hundt

このコードは、最小化または最大化するウィンドウを取得するのに役立ちます。例:Chrome「Stack Overflow」というタイトルのウィンドウを取得したい場合、

    pyautogui.getWindow("Stack Overflow").minimize()

または、「音楽」というタイトルのファイルエクスプローラウィンドウを最小化または最大化する場合も、同じことが当てはまります。

    pyautogui.getWindow("music").maximize()
3