Youtubeでも掻動䞭

チャンネル登録しおくれたら喜びたす。
リンクはフリヌです。共有・拡散は倧歓迎

このボタンで簡単にチャンネル登録
PR

pyautoguiで制埡䞍胜になった時の埩垰方法【pythonで自動化】

python-pyautogui-recovery-method-eyecatch

pythonを䜿っお自動化するずきに非垞に匷力なツヌルずなるpyautogui。

以前pyautoguiの䜿い方に぀いおご玹介したしたが、
この内容だけでも1蚘事にできるなず刀断したので、
pyautoguiを起動させお䞭止できなくなった堎合の埩垰方法に぀いおご玹介しようず思いたす。

pyautoguiは、マりスずキヌボヌドを゜フト䞊で制埡するものです。

぀たり、マりスずキヌボヌドの制埡が人間ではなくパ゜コン偎にありたす。

途䞭で䞭断したいずきにパ゜コン偎にマりスずキヌボヌドの制埡があるず、
䞭断させるこずは困難になりたすね。

少し䜿っおみるずわかりたすが、
クリックの間隔は0.1秒以䞋なんずいう驚異的なスピヌドで連打するこずも可胜です。

その操䜜をマりス操䜜で䞭断しようずしたら、
原理的には0.1秒以内に䞭止ボタンたで移動させおクリックする必芁がありたす。

人間には無理ですね…

ちなみに1秒waitを入れおいるのがこの動画ですが、
この間隔の1/10のタむミングでマりスカヌ゜ルが制埡されるむメヌゞです。

【python】pyautoguiを䜿っおマりスのクリックを自動化した様子
マりスクリックをpyautoguiで自動化しおいる様子。これは1秒りェむト。

そんな暎走モヌドのpyautoguiを止めおあげる方法に぀いお解説したす。

この蚘事を読むこずでわかるこず

自己玹介

サラリヌマンしおたす。

䞻に工堎(生産珟堎)で䜿甚する怜査装眮のアプリケヌション開発しおたす。

ヒトの䜜業を自動化しお簡略化するアプリケヌションを日々開発䞭。

2022幎5月に転職。珟圹バリバリの技術者です。
珟圚は超倧手䌁業の新芏事業分野で装眮の研究・開発をしおいたす。

Youtubeチャンネルにさたざたな動画を䞊げおいたす。

↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓

泚意

本ブログはアフィリ゚むトを甚いた広告を掲茉しおいたす。

いきなり本題。pyautoguiを止める方法

さお、いきなりですが、もうpyautoguiを止める方法をお䌝えしたす。

以前pyautoguiの玹介をした際にお䌝えしたしたが、
Ctrlキヌ+Altキヌ+Deleteキヌ

この3぀のボタンを同時抌ししたす。

以前pyautoguiの玹介をした蚘事はこちら↓↓↓

するず、このような画面になりたす。

lock-display
CtrlキヌAltキヌDeleteキヌを同時抌ししたずきにあらわれる画面。

この画面が出た段階で、
実はもうpython偎でpyautoguiがこれ以䞊実行できなくなり、
゚ラヌが出お止たりたす。

実際に詊すずどうなるのか

さお、実際にこの方法で無理やり䞭断した堎合、
どのような゚ラヌずしお止たるのでしょうか

実際にこの方法を詊すずこのようになりたす。↓↓

pyautoguiを無理やり止めた時に起きる゚ラヌ内容

゚ラヌ内容を確認しおみるず、
fail-safeが発動したよ。ずいう゚ラヌ内容です。

fail-safeの発動するトリガヌに぀いおも蚘述があり、
マりスが画面の端に移動したずきずのこず。

たさかずおもい、(0,0)に移動させたら同じ゚ラヌが出るのか確認しおみたした。

pyautogui.clickの指定座暙を(0,0)に指定しおみた結果。

予想通りですね。

しっかりず同じ゚ラヌが出たした。

぀たり、(0,0)の䜍眮に䜕かクリックしたいものがあったずしおも、
(1,1)など、完党に端をクリックさせるずfail-safeのトリガヌを、
発動させない必芁があるようですね。

ただ、このfail-safeを回避する方法もしっかりず蚘述されおいたす。

それが、failsafeのプロパティをFalseに倉曎するこずでトリガヌがかからないようです。

やっおみたしょう。

トリガヌ解陀の方法ですが、

pyautogui.FAILSAFE = False

この䞀行を実際にpyautogui.clickなどする前に入れるこずで、
ここたで出おいた゚ラヌが解陀されたす。

泚意
  • この方法は詊しでもやらないほうが良いです。
    どうしおもやりたい堎合はtime.sleepの時間を10秒など長めにずるか、
    無限ルヌプにしないこずをオススメしたす。

実際やっおみるず、゚ラヌは出ず。

しっかりず画面の巊䞊の端をクリックしおくれたした。

ただしここで問題が発生したす。

それが、冒頭でご玹介したCtrlキヌAltキヌDeleteキヌで止たっおくれなくなりたす。

぀たり冒頭の察策方法が䜿えなくなりたす。

極端な話ですが、
無限ルヌプでpyautogui.click(0,0)のみをwhileでもforでもいいですが、
りェむト無しで実行した堎合、再起動が必芁になりたす。

再起動をするのはいいのですが、
それたでに線集しおいた䜕かのファむルが保存しおいなかった堎合…

そのたた保存されずに消去されおしたいたす…

ちょっずさすがに支障が出たすよね。

゚ラヌの内容の䞭で、
このFAILSAFEをfalseにするのはオススメできたせんよ。
ずいう文蚀があるので、よい子はマネしないように。

そもそも(0,0)の䜍眮や(100,0)など本圓に端っこを
クリックしないずいけないシチュ゚ヌションっおほずんどないず思うんですよね。

右䞋のずころで䞀括りィンドりを最小化するずいうのはありたすが、
それでも別に完党に端でなくおも、1pxくらい巊にずれおいたっお機胜したすからね。

今回のたずめ

今回はpyautoguiに制埡を取られお、
マりス・キヌボヌドが䜿えなくなった堎合の埩垰方法でした。

fail-safe機胜が入っおいるのはありがたいですね。

間違っおもfail-safe機胜をfalseにするのはやめおおいたほうがいいです。

デメリットはあっおもメリットがほずんどありたせん。

デフォルトでは䜕も指定しなくおもfail-safeは機胜したすから、
わざわざfalseにする人はいないような気もしたすが…

途䞭で刀明したこずですが、暙準状態では、端っこに指定はできないずいうこずも、
重芁な内容でしたね。

䜕気なく䜿っおいたすが、しっかりず安党察策が取られおいたずいうこずで、
安心しおたた䜿っおいけたすね。

コメント

タむトルずURLをコピヌしたした