0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pyautoguiで遊ぶ クリックとホットキー

Posted at

#今回実装するもの

前回

同じ画像をデスクトップ上で検索し、その場所の座標を得てクリックするプログラムを作成した。

d_click=pyautogui.locateOnScreen('C:/Users/ryous/Desktop/qiita/zoom.png')
pyautogui.click(d_click[0],d_click[1],button="left",clicks=2)
pyautogui.sleep(0.2)

今回

例えば
image.png
こんな感じでデスクトップの画面上にほかのタスクが開かれているとき、前回使用したzoomの画面が左側にアイコンとかあれば押すことが出来るが、
押したい画像が画面に覆われているとき、pyautoguiのlocateonscreenはうまく画像を取得できない。

これの対処法

これを解消するには、タスクバーにピン留めしてlocateonscreenするか、Windowsキー+Dをクリックすることで一時的にデスクトップ上のタスクを最小化することが出来る。

これをpyautoguiで実装したい

pyautoguiにはhotkeyという関数がある。
https://pyautogui.readthedocs.io/en/latest/keyboard.html
公式サイトを見るとこんな感じで指定できるキーが確認できる。

 pyautogui.hotkey('●●','〇〇')
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
'browserback', 'browserfavorites', 'browserforward', 'browserhome',
'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
'command', 'option', 'optionleft', 'optionright']

hotkeyの動作

hotkeyは順に読み込まれて押される

正解

 pyautogui.hotkey('win','d')

これを実行すると画面が最小化されて取得したいアイコンが取得できる。

不正解

pyautogui.hotkey('d','win')

とするとうまくいかないので注意
ショートカットキーは押す順番に依存することを覚えておく

作ったのを前回のと組み合わせてみる


#ホットキーの指定
pyautogui.hotkey('win','d')
#待ち入れないとうまく取得できなくなる

pyautogui.sleep(0.5)

#クリックするデスクトップ上の画像
d_click=pyautogui.locateOnScreen('C:/Users/ryous/Desktop/qiita/zoom.png')
#左クリック2回
pyautogui.click(d_click[0],d_click[1],button="left",clicks=2)
#待ち
pyautogui.sleep(0.2)

これでアイコンのクリックは終了
次は自動入力とかやります

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?