Python pyautogui
pyautogui是一個可以自動化操作滑鼠與鍵盤的lib,但是也要注意失控問題!
import pyautogui
pyautogui.PAUSE = 1 # 代表每次呼叫執行動作之後都會停一秒
pyautogui.FAILSAFE = True # 啟用失效安全防護
pyautogui.PAUSE = 1 # 代表每次呼叫執行動作之後都會停一秒
pyautogui.FAILSAFE = True # 啟用失效安全防護
當啟用了失效安全防護的話,只要將滑鼠移到左上角滑啊滑,就會觸發了!
使用之前,簡單說明一下,左上角的座標是(0,0),右下角是(1919,1079),沒有負值,最主要還是看個人所設置的螢幕解析度為何。
不確定的情況下可以透過指令來取得目前的解析度
不確定的情況下可以透過指令來取得目前的解析度
pyautogui.size()
width, height = pyautogui.size()
width, height = pyautogui.size()
這樣子就可以直接把x、y的值給了width與height了!
接著,我們就試著讓鼠標動一動了,主要是使用pyautogui.moveTo(1, 2, duration=3)
1-x,2-y,3-表是移到那地方需要的秒數,如果不設定的話就預設為0,就是立馬就會到達的意思!
1-x,2-y,3-表是移到那地方需要的秒數,如果不設定的話就預設為0,就是立馬就會到達的意思!
如下圖所見,會看到執行之後就開始跑圈圈,然後我趁著執行間的空檔(pyautogui.PAUSE = 1)把滑鼠弄到左上角去滑啊滑,就會觸發失效安全防護的機刷!
如果想取得目前的滑標位置,也可以透用position來取得!
如果想要透過迴圈來一直取得x,y的話,也可以達到。
在已經知道怎麼取得座標之後,再來就是怎麼讓程式幫我們控制點一下!
利用的是click這個method
拖拉也可以達成
pyautogui也可以取得螢幕截圖
# 假如取得了(255, 200, 250)
pyautogui.pixelMatchesColor(50, 100, (255, 200, 250))
# 這時候會還傳true,該method就是拿來比對該座標的rgb是否相同。
如果想取得目前的滑標位置,也可以透用position來取得!
pyautogui.position()
如果想要透過迴圈來一直取得x,y的話,也可以達到。
print('Press Ctrl-C to exit.')
try:
x, y = pyautogui.position()
positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4) # rjust會讓字串靠右,並且佔同樣寬
print(positionStr, end='')
print('\b' * len(positionStr), end='', flush=True)
# \b用來刪除螢幕上目前行末的字元,故乘上字串長度,可將目前的文字擦掉
except KeyboardInterrupt:
print('\nDone.')
try:
x, y = pyautogui.position()
positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4) # rjust會讓字串靠右,並且佔同樣寬
print(positionStr, end='')
print('\b' * len(positionStr), end='', flush=True)
# \b用來刪除螢幕上目前行末的字元,故乘上字串長度,可將目前的文字擦掉
except KeyboardInterrupt:
print('\nDone.')
在已經知道怎麼取得座標之後,再來就是怎麼讓程式幫我們控制點一下!
利用的是click這個method
pyautogui.click(1, 2, button=3)
# 1-x軸,2-y軸,3-左(left)右(right)鍵
pyautogui(100, 100, buggon="left")
# click是按一下,按了放開的按一下。
# 也有pyautogui.doubleClick()、pyautogui.rightClick(),pyautogui.middleClick()…可使用。
# 1-x軸,2-y軸,3-左(left)右(right)鍵
pyautogui(100, 100, buggon="left")
# click是按一下,按了放開的按一下。
# 也有pyautogui.doubleClick()、pyautogui.rightClick(),pyautogui.middleClick()…可使用。
拖拉也可以達成
# 引數的部份一樣是x, y, duration=間隔時間
pyautogui.dragTo()
pyautogui.dragRel()
pyautogui.dragTo()
pyautogui.dragRel()
pyautogui也可以取得螢幕截圖
im = pyautogui.screenshot()
im.getpixel((50, 100)) # 取得該座標的rgb# 假如取得了(255, 200, 250)
pyautogui.pixelMatchesColor(50, 100, (255, 200, 250))
# 這時候會還傳true,該method就是拿來比對該座標的rgb是否相同。
沒有留言:
張貼留言