3.1 屏幕和鼠標位置
X坐標從左側(cè)的0開始,向右增加,Y坐標從頂部的0開始,向下遞增。
左上角的像素位于坐標0,0。如果屏幕分辨率為1920 x 1080,則右下角的像素將為1919,1079(因為坐標從0開始,而不是1)。文章來源:http://www.zghlxwxcb.cn/news/detail-490754.html
3.1.1 輸出屏幕分辨率大小與鼠標光標位置
import pyautogui
# size():以兩個整數(shù)的元組形式返回屏幕分辨率大小。
Screen_size = pyautogui.size()
print("當前屏幕大小為:",Screen_size)
# position():返回鼠標光標的當前X和Y坐標
print('Press Ctrl-C to quit.')
try:
while True:
# 獲取當前鼠標光標位置
x, y = pyautogui.position()
# print(x)
# print(y)
# rjust()返回長寬右對齊的字符串。
positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
print(positionStr, end='')
print('\b' * len(positionStr), end='', flush=True)
except KeyboardInterrupt:
print('\n')
文章來源地址http://www.zghlxwxcb.cn/news/detail-490754.html
3.1.2 判斷位置是否在屏幕內(nèi)
import pyautogui
FLag = pyautogui.onScreen(0, 0) # True
FLag = pyautogui.onScreen(0, -1) # False
FLag = pyautogui.onScreen(0, 99999999) # False
FLag = pyautogui.onScreen(1920, 1080) # False
FLag = pyautogui.onScreen(1919, 1079) # True
3.2 鼠標均速移動(相對位置與絕對位置)
3.2.1 moveTo()將鼠標光標移動到X和Y整數(shù)坐標(絕對位移)
import pyautogui
# moveTo()函數(shù)將鼠標光標移動到X和Y整數(shù)坐標,為None時為當前坐標
# 當前坐標為(600,300)
pyautogui.moveTo(100, 200) # 將光標瞬間移動到(100, 200)位置
pyautogui.moveTo(None, 500) # 將光標瞬間移動到(600, 200)位置
pyautogui.moveTo(600, None) # 將光標瞬間移動到(100, 300)位置
# 如果持續(xù)時間小于pyautogui.MINIMUM_duration,則移動將是即時的。
# 默認情況下,pyautogui.MINIMUM_DURATION為0.1
pyautogui.moveTo(100, 200, 2) # 用時2秒將光標移動到(100, 200)位置
3.2.2 move()將鼠標光標移動到相對于其當前位置的幾個像素(相對位移)
import pyautogui
# 相對位移
# move()將鼠標光標移動到相對于其當前位置的幾個像素上
pyautogui.moveTo(100, 200)
pyautogui.move(0, 50) # 移動到(100, 250)
pyautogui.move(-30, 0) # 移動到(70, 250)
pyautogui.move(-30, None) # 移動到(40, 250)
3.3 鼠標拖動
import pyautogui
# 按住鼠標左鍵的同時,將光標拖到(100, 200)位置
pyautogui.dragTo(100, 200, button='left')
# 按住鼠標左鍵的同時,用2秒將光標拖到(300, 400)位置
pyautogui.dragTo(300, 400, 2, button='left')
# 按住鼠標右鍵的同時,用2秒將光標拖到相對于當前位置的(30, 0)位置
pyautogui.drag(30, 0, 2, button='right')
3.4 鼠標隨機速度移動
import pyautogui
# 在一段時間內(nèi)移動鼠標時,鼠標會以恒定速度直線直接移動到目標位置。這被稱為線性二元函數(shù)或線性寬松函數(shù)。
# PyAutoGUI的tweening函數(shù)可以隨機調(diào)節(jié)速度。
# https://pypi.python.org/pypi/ PyTweening https://github.com/asweigart/pytweening
# 如果要創(chuàng)建自己的tweening函數(shù),請定義一個函數(shù),該函數(shù)接受一個介于0.0(表示鼠標移動的開始)和1.0(表示鼠標運動的結(jié)束)之間的浮點參數(shù),并返回介于0.0和1.0之間的浮點值。
# 使鼠標光標開始緩慢移動,然后加速向目標移動。
pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad) # 先慢后快,用時2秒
# easeOutQuad則相反:鼠標光標開始快速移動,但在接近目標時會減慢速度。
pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad) # 先快后慢,用時2秒,
pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad) # 開始結(jié)束快,中間慢
pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce) # bounce at the end
pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic) # rubber band at the end
3.5 鼠標點擊
import pyautogui
# click()函數(shù)模擬在鼠標當前位置單擊鼠標左鍵?!包c擊”是指按下按鈕,然后向上釋放。
pyautogui.click()
# 移動到(100,200)位置,并左鍵1次
pyautogui.click(x=100, y=200)
# 鼠標右鍵1次
pyautogui.click(button='right')
# 鼠標左鍵2次
pyautogui.click(clicks=2)
# 鼠標左鍵2次,中間有0.15秒的停頓
pyautogui.click(clicks=2, interval=0.25)
# 鼠標右鍵三次,每次中間有0.15秒的停頓
pyautogui.click(button='right', clicks=3, interval=0.25)
# 鼠標左鍵2次,可增參數(shù) x y
pyautogui.doubleClick()
# 鼠標左鍵3次,可增參數(shù) x y
pyautogui.tripleClick()
# 鼠標右鍵1次,可增參數(shù) x y
pyautogui.rightClick()
3.6 鼠標按下與抬起
import pyautogui
# 鼠標單擊和拖動包括按下鼠標按鈕和釋放鼠標按鈕
# 鼠標左鍵按下
pyautogui.mouseDown()
# 鼠標左鍵抬起
pyautogui.mouseUp()
# 鼠標右鍵按下
pyautogui.mouseDown(button='right')
# 鼠標右鍵在(100,200)位置抬起
pyautogui.mouseUp(button='right', x=100, y=200)
3.7 鼠標滾動scroll()
# 可以通過調(diào)用scroll()函數(shù)并傳遞整數(shù)次clicks”來模擬鼠標滾輪?!癱lick”中的滾動量因平臺而異。
# 可以為x和y關(guān)鍵字參數(shù)傳遞整數(shù),以便在執(zhí)行滾動之前移動鼠標光標。
import pyautogui
# scroll():整數(shù)次clicks來模擬鼠標滾輪?!癱lick”中的滾動量因平臺而異。
# 向上滾動10次“點擊”
pyautogui.scroll(10)
# 向下滾動10次“點擊”
pyautogui.scroll(-10)
# 先移動到(100,100)位置,再向上滾動10次“點擊”
pyautogui.scroll(10, x=100, y=100)
4 鍵盤控制功能
4.1 write()函數(shù)
import pyautogui
# 使用write()只能按單字符鍵,因此不能按Shift 或 F1鍵
# 立即輸入字符
pyautogui.write('Hello world!')
# 依次輸入字符,每個字符之間間隔0.25秒
pyautogui.write('Hello world!', interval=0.25)
4.2 press()、keyDown()和keyUp()函數(shù)
import pyautogui
# press()函數(shù)實際上只是keyDown()和keyUp()函數(shù)的包裝器,它們模擬按下一個鍵,然后釋放它。
# 在每次按下之間添加延遲間隔,設(shè)置interval即可,傳入int或float
# 按下回車鍵
pyautogui.press('enter')
# 按下F1鍵
pyautogui.press('f1')
# 按下←鍵
pyautogui.press('left')
# 要在按住Shift鍵的同時按左箭頭鍵三次
pyautogui.keyUp('shift')
pyautogui.press(['left', 'left', 'left']) # 多個按鍵用字符串列表
pyautogui.keyDown('shift')
# 設(shè)置presses=3,實現(xiàn)按←鍵3次
pyautogui.press('left', presses=3)
4.3 hotkey() :實現(xiàn)熱鍵組合
import pyautogui
# 為了方便按下熱鍵或鍵盤快捷鍵,可將熱鍵()傳遞給幾個鍵串,這些鍵串將按順序按下,然后按相反順序釋放。
# 要在每次按下之間添加延遲間隔,可為interval參數(shù)傳遞int或float
pyautogui.hotkey('ctrl', 'shift', 'esc')
# 等價于
pyautogui.keyDown('ctrl')
pyautogui.keyDown('shift')
pyautogui.keyDown('esc')
pyautogui.keyUp('esc')
pyautogui.keyUp('shift')
pyautogui.keyUp('ctrl')
4.4 KEYBOARD_KEYS
KEY_NAMES = [
"\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",
]
到了這里,關(guān)于【PyAutoGUI操作指南】02 鼠標控制功能+獲取當前坐標+鼠標事件+鼠標滾動查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!