当前位置:   article > 正文

【PyAutoGUI操作指南】02 鼠标控制功能+获取当前坐标+鼠标事件+鼠标滚动查询_ubuntu pyautogui 输出当前坐标

ubuntu pyautogui 输出当前坐标

3.1 屏幕和鼠标位置

X坐标从左侧的0开始,向右增加,Y坐标从顶部的0开始,向下递增。

在这里插入图片描述

左上角的像素位于坐标0,0。如果屏幕分辨率为1920 x 1080,则右下角的像素将为1919,1079(因为坐标从0开始,而不是1)。

3.1.1 输出屏幕分辨率大小与鼠标光标位置

import pyautogui

# size():以两个整数的元组形式返回屏幕分辨率大小。
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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在这里插入图片描述

3.1.2 判断位置是否在屏幕内

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.2 鼠标均速移动(相对位置与绝对位置)

3.2.1 moveTo()将鼠标光标移动到X和Y整数坐标(绝对位移)

import pyautogui

# moveTo()函数将鼠标光标移动到X和Y整数坐标,为None时为当前坐标
# 当前坐标为(600,300)
pyautogui.moveTo(100, 200) # 将光标瞬间移动到(100, 200)位置

pyautogui.moveTo(None, 500) # 将光标瞬间移动到(600, 200)位置

pyautogui.moveTo(600, None) # 将光标瞬间移动到(100, 300)位置

# 如果持续时间小于pyautogui.MINIMUM_duration,则移动将是即时的。
# 默认情况下,pyautogui.MINIMUM_DURATION为0.1
pyautogui.moveTo(100, 200, 2) # 用时2秒将光标移动到(100, 200)位置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.4 鼠标随机速度移动

import pyautogui

# 在一段时间内移动鼠标时,鼠标会以恒定速度直线直接移动到目标位置。这被称为线性二元函数或线性宽松函数。
# PyAutoGUI的tweening函数可以随机调节速度。
# https://pypi.python.org/pypi/ PyTweening https://github.com/asweigart/pytweening
# 如果要创建自己的tweening函数,请定义一个函数,该函数接受一个介于0.0(表示鼠标移动的开始)和1.0(表示鼠标运动的结束)之间的浮点参数,并返回介于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)  # 开始结束快,中间慢

pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce) # bounce at the end

pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic) # rubber band at the end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3.5 鼠标点击

import pyautogui

# click()函数模拟在鼠标当前位置单击鼠标左键。“点击”是指按下按钮,然后向上释放。
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次,可增参数 x y
pyautogui.doubleClick()
# 鼠标左键3次,可增参数 x y
pyautogui.tripleClick()
# 鼠标右键1次,可增参数 x y
pyautogui.rightClick()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3.6 鼠标按下与抬起

import pyautogui

# 鼠标单击和拖动包括按下鼠标按钮和释放鼠标按钮
# 鼠标左键按下
pyautogui.mouseDown()
# 鼠标左键抬起
pyautogui.mouseUp()
# 鼠标右键按下
pyautogui.mouseDown(button='right')
# 鼠标右键在(100,200)位置抬起
pyautogui.mouseUp(button='right', x=100, y=200)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.7 鼠标滚动scroll()

# 可以通过调用scroll()函数并传递整数次clicks”来模拟鼠标滚轮。“click”中的滚动量因平台而异。
# 可以为x和y关键字参数传递整数,以便在执行滚动之前移动鼠标光标。

import pyautogui

# scroll():整数次clicks来模拟鼠标滚轮。“click”中的滚动量因平台而异。
# 向上滚动10次“点击”
pyautogui.scroll(10)

# 向下滚动10次“点击”
pyautogui.scroll(-10)

# 先移动到(100,100)位置,再向上滚动10次“点击”
pyautogui.scroll(10, x=100, y=100)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

4 键盘控制功能

4.1 write()函数

import pyautogui
# 使用write()只能按单字符键,因此不能按Shift 或 F1键

# 立即输入字符
pyautogui.write('Hello world!')
# 依次输入字符,每个字符之间间隔0.25秒
pyautogui.write('Hello world!', interval=0.25)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.2 press()、keyDown()和keyUp()函数

import pyautogui

# press()函数实际上只是keyDown()和keyUp()函数的包装器,它们模拟按下一个键,然后释放它。
# 在每次按下之间添加延迟间隔,设置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')

# 设置presses=3,实现按←键3次
pyautogui.press('left', presses=3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

4.3 hotkey() :实现热键组合

import pyautogui

# 为了方便按下热键或键盘快捷键,可将热键()传递给几个键串,这些键串将按顺序按下,然后按相反顺序释放。
# 要在每次按下之间添加延迟间隔,可为interval参数传递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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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",
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/387257
推荐阅读
相关标签
  

闽ICP备14008679号