2017-06-09 4 views
0

私はPythonを使ってGUIを自動化したいプロジェクトに取り組んでいましたが、自動化しようとしていたWindowsプログラムはpyautoguiマウスのクリックに反応しません。このアプリケーションを意図的にWindows APIイベントをブロックした可能性はありますか?アプリケーションはWindows APIイベントに応答しませんか?

私が自動化しようとしている特定のプログラムは、BlackbaudのRaiser's Edgeです。

この問題の回避策が他にない場合は、マウスのクリックを制御するラズベリーパイとマウスをクリックしてから、コンピュータからSSHを実行する可能性があるため、私は頼んでいます。

答えて

0

Windows 10ではこれがより難しくなっています。自動化しようとしているアプリケーションが管理者として実行されている場合、通常のユーザーとして実行されているプログラムで制御することはできません。

管理者としてPythonプログラムを実行してみてください。

しかし、はい、実際のマウスイベントとシミュレートされたイベントをプログラムで区別することは可能です。それが非常に敏感なプログラムである場合、それらは持っているかもしれません。または、ビデオゲームの場合、ハードウェアを直接ポーリングしてウィンドウメッセージを無視することがあります。

EDIT:多くのアプリケーションでは、「クリック」メッセージ以上のものが必要です。彼らはmouseenter/mousemove/mousedown/mouseupが必要です。これらのメッセージがすべて送信されていない場合、「クリック」としてアクティブ化されません。 pyautogui.clickは正しくシミュレートする必要がありますが、アプリを試してどのように応答するか(リリースなしでマウスをクリックすれば、どうなりますか?)、シミュレーションを改善することができます。多分pyautogui.mouseDown()とpyautogui.mouseUp()の間に遅れを入れます。

しかし、私の勘違いは、アプリケーションがpythonスクリプトとは別のユーザーとして実行されていることです。

+0

恐ろしい、あなたは私に試しにいくつかのことを教えてくれました!私はあなたが私が見つけたものを知らせるために戻ってきます –

関連する問題