zoukankan      html  css  js  c++  java
  • Python直接控制鼠标键盘

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

  • 相关阅读:
    2013第五周上机任务【项目1 三角形类(构造函数)】
    Google搜索小技巧
    项目总结:文件上传(MVC uploadify)
    Oracle 触发器 Update 不能操作本表的疑问
    【笔试题STL】求两个vector的交集
    Zookeeper(六)数据模型
    是的,我们真的在遭遇有史以来最大的DDoS攻击,并且还在加剧
    在MFC框架下使用osg报内存泄露的解决办法
    NetBeans 时事通讯(刊号 # 107 Jun 25, 2010)
    VS 2008中的C/C++静态代码分析工具Prefast
  • 原文地址:https://www.cnblogs.com/fanghao/p/8453207.html
Copyright © 2011-2022 走看看