質問: ### 実現したいこと Pythonでマウス制御を行いたいです。 プログラム側から指定した座標にマウスを移動させるのですが、 ユーザーの作業中にこのプログラムを実行してしまうと、色々不都合が生じます。 例えば、何かのフォルダのウィンドウの移動中にこのプログラムが実行されると、指定した座標までそのウィンドウを持って行ってしまうことになる等・・・。 こういった不都合を生じさせない方法として、私が考えた方法は、プログラム実行前にユーザーからのマウス操作を一時的に無効化し、プログラム終了後にそれを解除するといった方法です。 これを実現しようと色々調べてはいるのですが、関連したものが見つかりません。 何か良い方法はありませんか?別の手法でもかまいません。
回答: PyAutoGUIというモジュールでマウス操作ができるようです。 参考:PyAutoGUIでマウス操作などのGUI操作する方法 > > 例えば、何かのフォルダのウィンドウの移動中にこのプログラムが実行されると、指定した座標までそのウィンドウを持って行ってしまうことになる等・・・。 > > > `Windows`環境限定ですが、以下に示した方法によって、プログラム操作前にユーザー入力の有無をチェックできるかもしれません。 detecting idle time using python 以下、ユーザー入力あれば動作中断する例です。※`Windows`環境限定 ``` import pyautogui import win32api # マウス移動 : ユーザーがマウス操作すればその分ずれる? pyautogui.moveTo(10, 10) pyautogui.moveTo(500, 500,5) # マウス移動 : ユーザー入力あれば動作停止させる pyautogui.PAUSE = 0.01 # 「なめらか」に動かす pyautogui.moveTo(10, 10) inpLast = win32api.GetLastInputInfo() print(inpLast) for i in range(50): inpCur = win32api.GetLastInputInfo() print(inpCur) if inpCur != inpLast: break pyautogui.moveRel(10,10) ```