怎么使用python的pyautogui控制鼠标和键盘

2023-04-19,

这篇文章主要介绍了怎么使用python的pyautogui控制鼠标和键盘的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用python的pyautogui控制鼠标和键盘文章都会有所收获,下面我们一起来看看吧。

PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)。

1、安装

pip3 install pyautogui

2、pyautogui鼠标操作样例

import pyautogui# 获取当前屏幕分辨率screenWidth, screenHeight = pyautogui.size()# 获取当前鼠标位置currentMouseX, currentMouseY = pyautogui.position()# 2秒钟鼠标移动坐标为100,100位置  绝对移动pyautogui.moveTo(x=100, y=100,duratinotallow=2, tween=pyautogui.linear)#鼠标移到屏幕中央。pyautogui.moveTo(screenWidth / 2, screenHeight / 2)# 鼠标左击一次#pyautogui.click()# x # y # clicks 点击次数# interval点击之间的间隔# button 'left', 'middle', 'right' 对应鼠标 左 中 右或者取值(1, 2, or 3)# tween 渐变函数pyautogui.click(x=None, y=None, clicks=1, interval=0.0, buttnotallow='left', duratinotallow=0.0, tween=pyautogui.linear)# 鼠标相对移动 ,向下移动#pyautogui.moveRel(None, 10)pyautogui.moveRel(xOffset=None, yOffset=10,duratinotallow=0.0, tween=pyautogui.linear)# 鼠标当前位置0间隔双击#pyautogui.doubleClick()pyautogui.doubleClick(x=None, y=None, interval=0.0, buttnotallow='left', duratinotallow=0.0, tween=pyautogui.linear)# 鼠标当前位置3击#pyautogui.tripleClick()pyautogui.tripleClick(x=None, y=None, interval=0.0, buttnotallow='left', duratinotallow=0.0, tween=pyautogui.linear)#右击pyautogui.rightClick()#中击pyautogui.middleClick()#  用缓动/渐变函数让鼠标2秒后移动到(500,500)位置#  use tweening/easing function to move mouse over 2 seconds.pyautogui.moveTo(x=500, y=500, duratinotallow=2, tween=pyautogui.easeInOutQuad)#鼠标拖拽pyautogui.dragTo(x=427, y=535, duratinotallow=3,buttnotallow='left')#鼠标相对拖拽pyautogui.dragRel(xOffset=100,yOffset=100,duratinotallow=,buttnotallow='left',mouseDownUp=False)#鼠标移动到x=1796, y=778位置按下pyautogui.mouseDown(x=1796, y=778, buttnotallow='left')#鼠标移动到x=2745, y=778位置松开(与mouseDown组合使用选中)pyautogui.mouseUp(x=2745, y=778, buttnotallow='left',duratinotallow=5)#鼠标当前位置滚轮滚动pyautogui.scroll()#鼠标水平滚动(Linux)pyautogui.hscroll()#鼠标左右滚动(Linux)pyautogui.vscroll()

3、pyautogui键盘操作样例

#模拟输入信息pyautogui.typewrite(message='Hello world!',interval=0.5)#点击ESCpyautogui.press('esc')# 按住shift键pyautogui.keyDown('shift')# 放开shift键pyautogui.keyUp('shift')# 模拟组合热键pyautogui.hotkey('ctrl', 'c')

4、按键支持

按键

说明

enter(或return 或 \n)

回车

esc

ESC键

shiftleftshiftright

左右SHIFT键

altleftaltright

左右ALT键

ctrlleftctrlright

左右CTRL键

tab (\t)

TAB键

backspacedelete

BACKSPACE 、DELETE键

pageuppagedown

PAGE UP 和 PAGE DOWN键

homeend

HOME 和 END键

updownleft,right

箭头键

f1f2f3….

F1…….F12键

volumemutevolumedown,volumeup

有些键盘没有

pause

PAUSE键

capslocknumlock,scrolllock

CAPS LOCK, NUM LOCK, 和 SCROLLLOCK 键

insert

INS或INSERT键

printscreen

PRTSC 或 PRINT SCREEN键

winleftwinright

Win键

command

Mac OS X command键

5、截屏

5.1、整个屏幕截图并保存

im1 = pyautogui.screenshot()im1.save('my_screenshot.png')im2 = pyautogui.screenshot('my_screenshot2.png')

5.2、屏幕查找图片位置并获取中间点

#在当前屏幕中查找指定图片(图片需要由系统截图功能截取的图)coords = pyautogui.locateOnScreen('folder.png')#获取定位到的图中间点坐标x,y=pyautogui.center(coords)#右击该坐标点pyautogui.rightClick(x,y)

6、安全设置

import pyautogui#保护措施,避免失控pyautogui.FAILSAFE = True#为所有的PyAutoGUI函数增加延迟。默认延迟时间是0.1秒。pyautogui.PAUSE = 0.5

7、实例说明(仅供学习)

7.1、需求场景

大量的windows端上使用某公司的代理软件,不时会出现不可用的情况,多次反馈某公司无果,可又不能不用,只能是定期去重启一下。

7.2、思路

使用Python的pyautogui模块替代手动登陆。

7.3、实践

1、由于国际链路问题,往往不能一次就成功登陆。再打开软件时和点击登陆时均可能出现几次不等的登陆失败提示,需要点击OK按钮确认。

2、程序会尝试进行五轮的登陆操作(使用对应的阶段的图片),期间检测到成功登陆则退出。

3、建脚本加入到开机启动(至于重启windows的任务就交给Ansible,将再其他文章进行详细说明)

# -*- coding: utf-8 -*-import osimport timeimport subprocessimport pyautogui

def kill_proc(description, proc_name):    try:        print('终止%s进程...' % (description))        os.system('taskkill /IM %s /F' % (proc_name))    except Exception as reason:        print(e)def run_proc(description, proc_name):    try:        print('启动%s进程...' % (description))        subprocess.Popen("%s" % (proc_name))        time.sleep(8)    except Exception as reason:        print('启动进程失败!!\n错误的原因是:' + str(reason))        os._exit(0)def check_img(description, img_name):    try:        print('查找%s图像' % (description))        button = pyautogui.locateOnScreen("%s" % (img_name))        print(button)        if description == 'Success':            return 1        if button:            print('点击%s图像' % (description))            button_center = pyautogui.center(button)            pyautogui.click(button_center)            time.sleep(1)    except BaseException:        print('没有找到%s图像' % (description))        return 0if __name__ == '__main__':    count = 1    kill_proc('911', 'Client.exe')    run_proc('911', 'Client.exe')    for i in range(5):        print('=====进行第%s轮检查=====' % (count))        count += 1        check_img('OK1', 'C:\\error_OK1.PNG')        check_img('OK2', 'C:\\error_OK2.PNG')        check_img('Login', 'C:\\Login.PNG')        time.sleep(5)        if check_img('Success', 'C:\\success.PNG'):            print('执行成功!!')            break

关于“怎么使用python的pyautogui控制鼠标和键盘”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用python的pyautogui控制鼠标和键盘”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注本站行业资讯频道。

《怎么使用python的pyautogui控制鼠标和键盘.doc》

下载本文的Word格式文档,以方便收藏与打印。