Python的pyautogui库自动化键鼠操作


起因

每天手动登录fortClient好麻烦,就想写一个按键精灵帮我登录,趁机泡杯咖啡它不香吗~



7.30日更新

使用时发现等待时间的不可控性太大了,有的时候程序没启动起来就进行后续点击动作,导致整个程序乱掉。于是改用库中locateOnScreen()来实时查看屏幕当前情况。

import pyautogui


def findElement(a):
    buttonlocation = None
    while buttonlocation == None:
        try:
            buttonlocation = pyautogui.locateOnScreen(a, confidence=0.8)
        except:
            continue
    return buttonlocation
    
def Login():
    # 获取当前屏幕分辨率
    screenWidth, screenHeight = pyautogui.size()
    print(screenWidth, screenHeight)
    # 获取当前鼠标位置
    currentMouseX, currentMouseY = pyautogui.position()
    print(currentMouseX, currentMouseY)

    #---------- 切换输入法 ----------#
    pyautogui.PAUSE = 0.5
    pyautogui.click(x=1142, y=11, duration=0.25)
    pyautogui.click(x=1142, y=104, duration=0.25)

    #---------- 打开fortclient ----------#
    pyautogui.hotkey('option', 'command', 'p')
    findElement('search.png')
    pyautogui.click(x=720, y=41, duration=0.25)
    pyautogui.typewrite(message="fort")
    findElement('fort.png')
    pyautogui.click(x=720, y=120, duration=0.25)
    
    #---------- 点击登录 ----------#
    findElement('btn.png')
    pyautogui.click(x=721, y=605, duration=0.25)

    #---------- 输入账号密码 ----------#
    findElement('next.png')
    pyautogui.typewrite(message="账号")
    pyautogui.press('enter')
    findElement('log.png')
    pyautogui.typewrite(message="密码")
    pyautogui.press('enter')
    findElement('yes.png')
    pyautogui.press('enter')


if __name__ == "__main__":
    Login()


一、Pyautogui库

提供了很多好用的键鼠自动控制API。
使用 $ pip3 install pyautogui 指令下载该库。

二、代码实现

import pyautogui

def Login():
    # 获取当前屏幕分辨率
    # screenWidth, screenHeight = pyautogui.size()

    # 获取当前鼠标位置
    # currentMouseX, currentMouseY = pyautogui.position() 

    #---------- 打开fortclient ----------#
    pyautogui.PAUSE = 1
    pyautogui.hotkey('option', 'command', 'p')
    pyautogui.write('fort')
    pyautogui.PAUSE = 3.5
    pyautogui.click(x=720, y=120, duration=0.25)

    #---------- 点击登录 ----------#
    pyautogui.click(x=721, y=605, duration=0.25)
    pyautogui.PAUSE = 1.5

    #---------- 输入账号密码 ----------#
    pyautogui.typewrite(message="账号")
    pyautogui.press('enter')
    pyautogui.typewrite(message="密码")
    pyautogui.press('enter')
    pyautogui.press('enter')


if __name__ == "__main__":
    Login()

几个实现功能的小窍门:

  1. 使用 pyautogui.position() 方法找到自己想要的鼠标落点坐标
  2. 使用 pyautogui.PAUSE 控制后续操作间隔。注意: 执行 pyautogui方法的时候,不能穿插sleep()控制时间,会打断施法(误。
  3. 支持方法很多,如鼠标各种点击,键盘输入,热键使用等。

三、总结

更多关于pyautogui库的使用方法请参考pyautogui官方指南

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值