首页 > 其他分享 >PyAutoGui:用代码操作鼠标键盘

PyAutoGui:用代码操作鼠标键盘

时间:2023-01-24 15:11:48浏览次数:63  
标签:PyAutoGui pyautogui 鼠标 screenshot 10 键盘 print 500

PyAutoGui

参考:https://zhuanlan.zhihu.com/p/466800088

参考:https://blog.csdn.net/weixin_38640052/article/details/112387653

安装:

pip3 install pyautogui

引入:

import pyautogui

获取屏幕分辨率

print(pyautogui.size())   # 返回所用显示器的分辨率; 输出:Size(width=1920, height=1080)
width,height = pyautogui.size()
print(width,height)  # 1920 1080

鼠标

当前鼠标位置

print(pyautogui.position())

移动

# 将鼠标移动到指定的坐标;duration 的作用是设置移动时间
pyautogui.moveTo(100,300,duration=1)   

# 当前位置右移
pyautogui.moveRel(50, 0, duration=0.25) 

点击

鼠标点击(click版)

pyautogui.click(10,10)   # 鼠标点击指定位置,默认左键
pyautogui.click(10,10,button='left')  # 单击左键
pyautogui.click(1000,300,button='right')  # 单击右键
pyautogui.click(1000,300,button='middle')  # 单击中间

鼠标点击(mouse版)

pyautogui.mouseDown() # 鼠标左键按下再松开
pyautogui.mouseUp()
pyautogui.mouseDown(button='right') # 按下鼠标右键
pyautogui.mouseUp(button='right', x=100, y=200) # 移动到(100, 200)位置,然后松开鼠标右键

鼠标双击

pyautogui.doubleClick(10,10)  # 指定位置,双击左键
pyautogui.rightClick(10,10)   # 指定位置,双击右键
pyautogui.middleClick(10,10)  # 指定位置,双击中键

拖拽

# 拖动到指定位置
# 将鼠标拖动到指定的坐标;duration 的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数
pyautogui.dragTo(100,300,duration=1)   

# 按方向拖动
# 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟
pyautogui.dragRel(100,500,duration=4)   # 第一个参数是左右移动像素值,第二个是上下

鼠标滚轮

pyautogui.scroll(10) # 向上滚动10格
pyautogui.scroll(-10) # 向下滚动10格

按键

pyautogui.keyDown('shift')    # 按下shift
pyautogui.press('4')    # 按下 4
pyautogui.keyUp('shift')   # 释放 shift

组合键

pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')
# 或者
pyautogui.hotkey('ctrl','c')

输出

pyautogui.typewrite('$*……%……¥', 0.5)

特殊顺序输出

pyautogui.typewrite(['T','i','s','left','left','h',])   # 输出:This

特殊按键:

enter(或return 或 \n):回车

shiftleft, shiftright:左右SHIFT键

altleft, altright:左右ALT键

ctrlleft, ctrlright:左右CTRL键

winleft, winright:Win键(windows )

command:command键(Mac OS X )

option:option(Mac OS X)

屏幕

截图

im = pyautogui.screenshot()
im.save('屏幕截图.png')

简单写法:

pyautogui.screenshot(r'C:\my_screenshot.png') # 截全屏并设置保存图片的位置和名称
im = pyautogui.screenshot(r'C:\my_screenshot.png') # 截全屏并设置保存图片的位置和名称
print(im) # 打印图片的属性

屏幕像素点

判断(x,y)是否在屏幕上

x, y = 100, 200
pyautogui.onScreen(x, y) # 结果为true

获取像素点

pix = pyautogui.screenshot().getpixel((220, 200)) # 获取坐标所在屏幕点的RGB颜色
positionStr = ' RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(3) + ')'
print(positionStr) # 打印结果为RGB:( 60, 63, 65)

pix = pyautogui.pixel(220, 200) # 获取坐标所在屏幕点的RGB颜色与上面三行代码作用一样
positionStr = ' RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(3) + ')'
print(positionStr) # 打印结果为RGB:( 60, 63, 65)

像素点匹配

im = pyautogui.screenshot() # 返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)) # 返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组

pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;

找图

# 获得文件图片在现在的屏幕上面的坐标,返回的是一个元组(top, left, width, height)
# 如果截图没找到,pyautogui.locateOnScreen()函数返回None
a = pyautogui.locateOnScreen(r'C:\region_screenshot.png')
print(a) # 打印结果为Box(left=0, top=0, width=300, height=400)

x, y = pyautogui.center(a) # 获得文件图片在现在的屏幕上面的中心坐标
print(x, y) 

简单写法

x, y = pyautogui.locateCenterOnScreen(r'C:\region_screenshot.png') 
print(x, y) 

多目标找图

多目标匹配(for循环)

打印结果为:

Box(left=0, top=0, width=300, height=400)

pyautogui.locateAllOnScreen(r'C:\region_screenshot.png')
for pos in pyautogui.locateAllOnScreen(r'C:\region_screenshot.png'):
  print(pos)

多目标匹配(list)

打印结果为[Box(left=0, top=0, width=300, height=400)]

a = list(pyautogui.locateAllOnScreen(r'C:\region_screenshot.png'))
print(a)

弹窗

普通弹窗

b = pyautogui.alert(text='要开始程序么?', title='请求框', button='OK')
print(b) # 输出结果为OK

确认窗

pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel']) # OK和Cancel按钮的消息弹窗

输入框

# 可以输入的消息弹窗,带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。
pyautogui.prompt(text='', title='', default='')

标签:PyAutoGui,pyautogui,鼠标,screenshot,10,键盘,print,500
From: https://www.cnblogs.com/tigerlion/p/17066097.html

相关文章

  • python 控制鼠标操作
    importtimeimportpyautogui##必须以管理员身份运行此程序,不然鼠标点击会没有效果!!!defmoveAndClick():print("startapp")x,y=976,748#鼠标需要移动到的位......
  • js 粒子点击鼠标(particle)
    直接贴js代码在script里面就行了constparticle_canvas=document.createElement("canvas");particle_canvas.setAttribute("id","particle_canvas")document.querySel......
  • Daydream 键盘来了
    VR已经成为消费行业的大热门,而VR的操控输入体验则有所不同。在物理层面上,每个厂家提供了不同的手柄设计,但如果要解决输入,显然手柄就会遇到局限,这个时候就需要一个虚拟键盘......
  • 让windows的键盘变得和mac类似
    TwoAppsSharpKeysKeyboradSteps下载两个软件:https://sharpkeys.en.softonic.com/downloadhttps://www.autohotkey.com/重新映射左Alt,左Ctrl和左Windows(......
  • 自动化工具PyAutoGUI :键盘操作
    pyautogui.typewrite('Helloworld!')#输入Helloworld!字符串pyautogui.typewrite('Helloworld!',interval=0.25)#每次输入间隔0.25秒,输入Helloworld!pyautogui.......
  • vimtualbox 安装虚拟机之后屏幕过小、鼠标不同自由在虚拟机和物理主机之间切换的解决
     001、  002、  003、点击run  004、表示完成,按回车  005、  006、reboot进行重启 007、  008、 ......
  • python 控制鼠标操作
    importtimeimportpyautogui##必须以管理员身份运行此程序,不然鼠标点击会没有效果!!!defmoveAndClick():print("startapp")x,y=976,748#鼠标需要......
  • 在linux下更换键盘布局
    作死中...想试试norman,但我用的是wayland,棺方官方的xkeymap用不了(实际在sway下是可以的只是当时我没发现)翻archwiki半天没找到方法,最后在fcitx5上发现了这个布局,果断换了......
  • Qt5.6使用Qt自带虚拟键盘
    Qt自带虚拟键盘是5.7版本以上才有,要在Qt5.6上使用自带虚拟键盘需要先下载源码,再进行编译安装。上网查了一些资料都很有用。https://doc.qt.io/qt-5/qtvirtualkeyboard-ind......
  • win10自动弹出触摸键盘
    ​​参考链接​​1.打开设置,搜索触摸键盘......