質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PyAutoGUI

PyAutoGUIは、Windows、Mac OS、Linuxに対応した、Python用のGUI自動化ライブラリです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

354閲覧

PyAutoGUIでマウスが動かない

MIZU

総合スコア0

PyAutoGUI

PyAutoGUIは、Windows、Mac OS、Linuxに対応した、Python用のGUI自動化ライブラリです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/09/27 19:56

実現したいこと

PyAutoGUIを使い作業を自動化したい

発生している問題・分からないこと

エラー文などは出ていないが画像認識でマウスカーソルが動かない

Windows 11
visual studio code

該当のソースコード

import pyautogui as pgui import time import pyautogui time.sleep(5) pgui.press('win') pgui.write('Excel') time.sleep(1) pgui.press('enter') time.sleep(30) pgui.click('harem mode.png') pgui.press('E') pyautogui.click('Annette face.jpg')

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

PyAutoGUIの使い方

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2024/09/28 02:16 編集

(質問を勘違いしていたので削除します。 すみません)
guest

回答2

0

反応が無いので削除します。

投稿2024/09/30 10:29

編集2024/11/09 12:33
hiroki-o

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず以下を試してみてください。

  • スクリプトを管理者権限で実行してみる

Stackoverflowに、スクリプトを管理者権限で実行する必要があった、と書かれている方が居たので一応お試しください。

  • PyAutoGUIを再インストールしてみる
pip install --force-reinstall pyautogui
  • とりあえず座標での指定だと動くか確かめてみる

これでも動かなかった場合、そもそもカーソルの移動自体で問題が起きている可能性大。
これで動いた場合、画像認識時のみに発生する問題だとわかる

*誤回答を修正しました

投稿2024/09/28 03:10

編集2024/09/28 07:23
FoxRefire

総合スコア146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroki-o

2024/09/28 06:47

>PyAutoGUIのclick()メソッドはご質問のコードにあるように画像認識してクリックするためのものではないです。 下のリンクの「… you can call~」に書いてある通り、click()に直接画像を指定すると、同じ画像を認識して中央をクリックします。 質問者さんの環境ではImageNotFoundExceptionが出ていないので、画像認識はできています。 なぜマウスカーソルが動かないのか不明なので、私は回答を作成できていませんが...
FoxRefire

2024/09/28 07:23

あ、ほんとですね。 ドキュメントをちゃんと読めていませんでした。回答を修正しました。
MIZU

2024/09/28 07:37

やはり再インストールしても管理者実行してもマウスカーソルが動かないですね セキュリティーソフトなど影響で動作しないことってありますか?
FoxRefire

2024/09/28 08:57

画像での指定、座標での指定にも関係なく正しい位置がクリックされないということでしょうか? >セキュリティーソフトなど影響で動作しないことってありますか? 仮想マシンのゲストツールのインストール後に動かなくなった、と[言っている人も居た](https://stackoverflow.com/questions/75804603/pyautogui-doesnt-move-cursor-or-click-inside-a-virtual-machine)ので、別のソフトウェアが原因で動かないということもあり得ると思います。 その方は、再起動で解消されたみたいなので一応試してみてください。
MIZU

2024/09/28 12:37

>画像での指定、座標での指定にも関係なく正しい位置がクリックされないということでしょうか? pgui.click(100, 100)にコードを変更したらマウスカーソルは移動されました。 ですがpgui.click('aa.png')ですとやはりマウスカーソルカーソルは移動されませんでした セキュリティーソフトはなんも関係はなかったみたいです
melian

2024/09/28 12:45

locateOnScreen() で画像の座標を取得してクリックしてみてはどうでしょうか。 coordinates = pgui.center(pgui.locateOnScreen('harem mode.png')) pgui.click(*coordinates)
FoxRefire

2024/09/28 12:53

ああだったら画像認識の部分で問題が起きてると考えてよさそうですね。 このように実行してみて正しく座標が取得できてるか確認してみてください。 ``` location = pyautogui.locateOnScreen('/path/to/image.png') print(location) ``` これで正しく座標が取得できていないなら、`pyautogui.locateOnScreen('/path/to/image.png', confidence=0.9)`のようにconfidence引数の値を変更すると完全一致じゃなくとも指定した一致度以上であればマッチするようになるはずです。 なお、OpenCVのインストールが必要なので`pip install opencv-python`してインストールしてください。
MIZU

2024/09/28 14:42

>locateOnScreen() で画像の座標を取得してクリックしてみてはどうでしょうか。 time.sleep(5) coordinates = pgui.center(pgui.locateOnScreen('スクリーンショット 2024-09-28 044625.png')) pgui.click(*coordinates) 動かないですね
MIZU

2024/09/28 14:43

>ああだったら画像認識の部分で問題が起きてると考えてよさそうですね。 このように実行してみて正しく座標が取得できてるか確認してみてください。 while pgui.locateOnScreen('スクリーンショット 2024-09-28 044625.png' , confidence=0.9) is None: time.sleep(1) position=pgui.locateOnScreen('スクリーンショット 2024-09-28 044625.png' , confidence=0.9) このコードでやってみたんですが動きませんね
FoxRefire

2024/09/28 15:15

print(position)したら何が出力されますか? OpenCVは入ってますか?
MIZU

2024/09/29 16:20

>print(position)したら何が出力されますか? OpenCVは入ってますか? 出力結果にはなんも出ていませんね OpenCV入っていますね
FoxRefire

2024/09/29 16:48

あ、恐らく原因がわかりました。 どうやら、引数に指定する画像は実際の表示サイズと同じ解像度でないといけないっぽい。 んで、Windows標準のSnipping toolでスクショすると勝手に圧縮されて元の解像度が保持されないので正しく認識されないみたいです。 代わりに ``` image = pyautogui.screenshot() image.save('screenshot.png') ``` して、pyautoguiの機能でスクリーンショットを作成し元の解像度を保持したまま認識箇所を切り抜いた画像を使用すれば正しく認識するようになるはずです。
MIZU

2024/09/30 12:10

ダメでしたねおそらくですが画像の画質の問題以前ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問