• Python直接控制鼠标键盘


    之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动。这里记录一下学习情况

    安装

    $ sudo pip install pyautogui

    安装的依赖包可能比较多,只要耐心等待即可

    基本使用

    screenWidth, screenHeight = pyautogui.size() # 屏幕尺寸
    mouseX, mouseY = pyautogui.position() # 返回当前鼠标位置,注意坐标系统中左上方是(0, 0)

    为了保持用户可以随时干预鼠标键盘的动作,比较好的方法是添加停顿,或者强制结束,否则想停了鼠标还一直在晃就会失控,下面是两种对应的设置

    pyautogui.PAUSE = 1.5 # 每个函数执行后停顿1.5秒
    pyautogui.FAILSAFE = True # 鼠标移到左上角会触发FailSafeException,因此快速移动鼠标到左上角也可以停止

    鼠标操作

    移动

    w, h = pyautogui.size()
    pyautogui.moveTo(w/2, h/2) # 基本移动
    pyautogui.moveTo(100, 200, duration=2) # 移动过程持续2s完成
    pyautogui.moveTo(None, 500) # X方向不变,Y方向移动到500
    
    pyautogui.moveRel(-40, 500) # 相对位置移动

    拖动

    # 点击+向下拖动
    pyautogui.click(941, 34, button='left')
    pyautogui.dragRel(0, 100, button='left', duration=5)

    点击

    pyautogui.click(300, 400, button='right') # 包含了move的点击,右键
    pyautogui.click(clicks=2, interval=0.25) # 双击,间隔0.25s

    滚轮

    pyautogui.scroll(-10)

    键盘操作

    输入文字

    点击对话框输入文字即可,不过中文好像不行

    pyautogui.click(1279, 374)
    pyautogui.typewrite('hello world!')

    精确控制键盘

    一下是手动输入中文的方法

    pyautogui.press('shift') # 切换输入法的中英文
    pyautogui.press(['#', ' ']) # press 可以对单个字符或者列表进行操作
    pyautogui.press(['x', 'i', 'a', 'o'])
    pyautogui.press(['y', 'u'])
    pyautogui.press(['w', 'e', 'i'])
    pyautogui.press(['l', 'a', 'n'])
    pyautogui.press(' ')
    
    # 潇雨危栏

    hotKey

    pyautogui.hotkey('shift', 'a') # 可以使用组合键,本质上是
    '''
    pyautogui.keyDown('shift')
    pyautogui.keyDown('a')
    pyautogui.keyUp('shift')
    pyautogui.keyUp('a')
    '''

    小结

    PyAutoGUI模拟了鼠标键盘的输入,感觉机器好像被脚本操控了,具体的应用还没想好,感觉好像能解决一些爬虫的问题。这个库的灵活之处在于应用无关性,缺点也在于这一点。

    转载自:https://www.cnblogs.com/fanghao/p/8453207.html

  • 相关阅读:
    MySQL 重置Mysql root用户账号密码
    Git 在同一台机器上配置多个Git帐号
    JQuery 获取元素到浏览器可视窗口边缘的距离
    JQuery Ztree 树插件配置与应用小结
    JQuery iframe宽高度自适应浏览器窗口大小的解决方法
    JQuery jquerysessionjs插件使用介绍
    JQuery Deferred对象使用小结
    JQuery javascript实现父子页面相互调用
    JavaScript 使用new关键字调用函数
    CSS 让div,span等块级、非快级元素排列在同一行
  • 原文地址:https://www.cnblogs.com/guohu/p/11314911.html
Copyright © 2020-2023  润新知