3

マウス/キーボードを制御し、画面の内容を「見る」ことができるようにすることで、他のプログラムを「使用」できるプログラムを書きたいと思います。

私はAutoItを使って似たようなことをしましたが、言語がそれほど強力ではないため、時々ごまかさなければなりませんでした.

だから...私はする必要があります:

  • スクリーンショットを撮り、それらを比較してプログラムを「理解」させますが、「見る」必要があります
  • マウスを使用します: 動かして、クリックして、放します。簡単ですね。
  • Altキーボードの使用: などの特殊キーを含む、いくつかのキーまたはキーの組み合わせを押すCtrl...

どうすればPythonでそれを行うことができますか?
Linux と Windows の両方で動作しますか? (これは本当にクールかもしれませんが、必須ではありません)

4

5 に答える 5

2

PyWinAutoを使用した同様のタスクで運が良かった。

pywinautoは、MicrosoftWindowsGUIを自動化するためのPythonモジュールのセットです。最も単純な方法では、マウスとキーボードのアクションをWindowsのダイアログとコントロールに送信できます。

また、Python ImagingLibraryPILを使用してダイアログなどの画像をキャプチャするためのサポートもあります。

于 2009-07-06T08:14:54.953 に答える
2

AutoIt は、あなたが言及したすべてのことを完全に行うことができます。自動化を行いたいが、Python の機能を使用したい場合、DLL/COM コントロールであるAutoItXを使用するのが最も簡単であることがわかりました。

私のこの答えから取られた:

import win32com.client
oAutoItX = win32com.client.Dispatch( "AutoItX3.Control" )

oAutoItX.Opt("WinTitleMatchMode", 2) #Match text anywhere in a window title

width = oAutoItX.WinGetClientSizeWidth("Firefox")
height = oAutoItX.WinGetClientSizeHeight("Firefox")

print width, height
于 2009-07-07T13:39:50.300 に答える
2

Windows でWATSUPを使用できます。

于 2009-07-05T19:32:24.427 に答える
1

パスカルに慣れている場合、非常に強力なキーボード/マウス/画面読み上げプログラムはSCARです。http://freddy1990.com/index.php ?page = product&name = scar OCR、ビットマップ検索、色検索などを実行できます。 。これはオンラインゲームの自動化によく使用されますが、画面を読んで入力を与える人間をシミュレートしたいあらゆる状況で使用できます。

于 2009-07-06T01:55:26.310 に答える
0

過去に、Windows (のみ) の入力 APIを使用して、VNC のようなリモート コントロール アプリケーションを作成したことがあります。これにより、システム レベルでうまくキーボードとマウスの入力を偽装できます (つまり、単一のアプリケーションにイベントをポストするだけではありません)。

GUI レベルでシステム全体の何らかの自動テストを行おうとしている場合は、自動応答性テストについて説明しているこの優れた USENIX の論文は必読です。

于 2009-07-05T20:34:32.040 に答える