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

Python直接控制鼠标键盘的更多相关文章

  1. python如何直接控制鼠标键盘

    一.简介 我们知道在windows下输入:win + r,会弹出下面的窗口,而在下面的窗口出现后我们接着按下esc键,下面的窗口会消失 现在设想我们想在python代码里控制键盘,想通过运行代码-&g ...

  2. Python使用pyautogui控制鼠标键盘

    官方文档:https://pyautogui.readthedocs.io/en/latest/# 安装pyautogui模块 在 Windows 上,不需要安装其他模块. 在 OS X 上,运行 s ...

  3. Python——控制鼠标键盘

    一.安装包 pip install pynput 二.引用包 from pynput import mouse,keyboard 三.控制鼠标 from pynput.mouse import But ...

  4. 安利下PyAUtoGUI这个库,可自动化控制鼠标键盘

    PyAutoGUI 不知道你有没有用过,它是一款用Python自动化控制键盘.鼠标的库.但凡是你不想手动重复操作的工作都可以用这个库来解决. 比如,我想半夜时候定时给发个微信,或者每天自动刷页面等操作 ...

  5. 【328】Python 控制鼠标/键盘+图片识别 综合应用

    本文是基于 [267]实现跨网络传数据 的基础上的,由于在弹出 putty 之后,需要手动输入命令(pass.sh.get.sh)来实现数据的传递,另外就是处理完之后需要手动关闭 putty,本文解决 ...

  6. python 监视和控制鼠标键盘的输入(使用pynput 而非pyhook)

    百度上搜到的文章大多基于pyhook, pip不能直接安装,托管在sourceForge上的代码仓库也找不到. google上发现可以使用pynput,貌似控制更为简单,而且可以直接使用pip安装 示 ...

  7. python控制鼠标键盘

    1.安装类库 pip install pyautogui 2.代码: import pyautogui,time,random pyautogui.PAUSE = pyautogui.FAILSAFE ...

  8. 用代码控制鼠标键盘(C#语言)

    前些时间想做一个鼠标点击器,用到了这些知识. 下面整理记录一下. ps.感谢各位大神 下面直接上代码 1.鼠标的控制 class MouseMove { #region MouseEvent [Sys ...

  9. python之auto鼠标/键盘事件

    mouse_key.py import os import time import win32gui import win32api import win32con from ctypes impor ...

随机推荐

  1. Spring Boot配置大全

    Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到 ...

  2. python--自己实现的单链表常用功能

    最近一个月,就耗在这上面吧. 很有收获的. # coding = utf-8 # 单向链表 class Node: def __init__(self, new_data): self.data = ...

  3. 实战--Keepalived和LVS实现负载高可用

    显然,只有上一篇的操作,在WEB运维技术中,只能承担一半的角色. 想像一下,如何LVS本身倒了,肿么办?后端的NGINX再多,也只能是干着急,请求过来不呀! 所以,在本篇时,我们来实现LVS永不倒, ...

  4. [转] meta标签的作用及整理

    meta的标签的使用是我在前端学习中曾经困惑过一段时间的问题.一方面不是很了解meta标签的用途,另一方面是对于meta标签里的属性和值不是懂,也不知道从哪里冒出来的,所以这篇文章专门整理下meta标 ...

  5. nignx部署Vue单页面刷新路由404问题解决

    官网说明: https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E8%AD%A6%E5%91%8A 在linux下搭建ngi ...

  6. Office 2010 word无法创建工作文件 请检查临时环境变量 的解决办法

    Office 2010 word无法创建工作文件 请检查临时环境变量 的解决办法 http://hi.baidu.com/netshen/item/207fd935d452e0e9df2221c9 如 ...

  7. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-4项目前端说明

    本文目录1. 摘要2. UI界面展示 3. 主要技术点4. 总结 1.  摘要 平时比较忙,写一篇文章可能跨度好几天,希望各位多多包涵.闲言少叙直接进入正题. 2.  UI界面 NCMVC用的就图二, ...

  8. git之二: git可视化工具sourcetree

    参考:  https://www.cnblogs.com/tian-xie/p/6264104.html sourcetree安装使用

  9. Android ADB命令 adb devices 出现error:protocol fault (no status)

    问题背景:安装apk是报error:protocol fault<no status>或error:device not found手机驱动有问题 出现的问题如下:adb devices ...

  10. JS uint8Array转String

    Uint8Array转字符串 function Uint8ArrayToString(fileData){ var dataString = ""; ; i < fileDa ...