1、PyUserInput 简介

PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用。支持的平台及依赖如下:

  • Linux - Xlib
  • Mac - Quartz, AppKit
  • Windows - pywin32, pyHook

支持python版本:我用的是3.6.7

2、安装

直接源码安装,python3加持:

git clone https://github.com/PyUserInput/PyUserInput.git
cd PyUserInput
sudo python3 setup.py install

注: 推荐用python3

3、入门

实例化一个鼠标和键盘对象:

from pymouse import PyMouse
from pykeyboard import PyKeyboard m = PyMouse()
k = PyKeyboard()

点击屏幕中间并输入"hello world":

x_dim, y_dim = m.screen_size()
m.click(x_dim//2, y_dim//2, 1) #取整除 - 向下取接近除数的整数
k.type_string('Hello, World!')

PyKeyboard支持多种输入方法:

# pressing a key
k.press_key('H')
# which you then follow with a release of the key
k.release_key('H')
# or you can 'tap' a key which does both
k.tap_key('e')
# note that that tap_key does support a way of repeating keystrokes with a interval time between each
k.tap_key('l',n=2,interval=5)
# and you can send a string if needed too
k.type_string('o World!')

并且支持各种特殊的按键输入:

#Create an Alt+Tab combo
k.press_key(k.alt_key)
k.tap_key(k.tab_key)
k.release_key(k.alt_key) k.tap_key(k.function_keys[5]) # Tap F5
k.tap_key(k.numpad_keys['Home']) # Tap 'Home' on the numpad
k.tap_key(k.numpad_keys[5], n=3) # Tap 5 on the numpad, thrice

4、PyMouse项目分析

PyUserInput开源项目维护的不太好,是将之前的PyMouse和PyKeyboard项目合到一起,而且竟然把人家之前的DEMO给删了!!!为了体验原汁原味的PyMouse我们还是单独分析吧 LINK-6

下面的一个例子展示了PyMouse的经典用法,主要用来操作鼠标 LINK-4

# import the module
from pymouse import PyMouse # instantiate an mouse object
m = PyMouse() # move the mouse to int x and int y (these are absolute positions)
m.move(200, 200) # click works about the same, except for int button possible values are 1: left, 2: right, 3: middle
m.click(500, 300, 1) # get the screen size
m.screen_size()
# (1024, 768) # get the mouse position
m.position()
# (500, 300)

我在之前写过一篇《1、python鼠标点击、移动事件应用——写一个自动下载百度音乐的程序》,就是用了PyMouse。

5、小结

PyMouse、PyKeyboard用python操作鼠标和键盘的库,使用起来比较简单,需要结合具体的应用需求才能玩出新花样。比如和openCV结合做游戏外挂和智能硬件结合做手势切歌和网页解析结合做日刷千题的OJ-AC自动机....

完~ 
大家觉得不错,可以点推荐给更多人~

LINKS

[1]. Python3 运算符
[2]. PyUserInput GITHUB地址
[3]. PyUserInput 文档
[4]. PyMouse 文档
[5]. PyMouseEvent 文档
[6]. PyMouse GITHUB地址

转载自:https://www.cnblogs.com/zjutlitao/p/10188434.html

PyMouse、PyKeyboard用python操作鼠标和键盘的更多相关文章

  1. [python] PyMouse、PyKeyboard用python操作鼠标和键盘

      1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quart ...

  2. 1、[python] PyMouse、PyKeyboard用python操作鼠标和键盘

    [python] PyMouse.PyKeyboard用python操作鼠标和键盘 1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方 ...

  3. Python模拟鼠标和键盘操作实现重复性操作

    前言 由于工作需要,要利用某软件去采集数据,做重复的动作大概500多次.所以想写一个程序代替人,去点击和输入. 一开始的思路有两个:1.用Python或者windows对此软件直接操作.2.利用Pyt ...

  4. 『心善渊』Selenium3.0基础 — 12、Selenium操作鼠标和键盘事件

    目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 ...

  5. C# 调用windows api 操作鼠标、键盘、窗体合集...更新中

    鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体   首先打开spy+ ...

  6. python模拟鼠标和键盘操作

    import win32api import win32con import win32gui from ctypes import * import time VK_CODE = { 'backsp ...

  7. Python+selenium鼠标、键盘事件

    鼠标操作 现在的Web产品提供了丰富的鼠标交互方式,例如鼠标右击.双击.悬停.甚至是鼠标拖动等功能,在Webdriver中,将这些关于鼠标操作的方法封装在ActionChains类提供. 1.鼠标右击 ...

  8. python:控制鼠标和键盘

    程序: # # _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * im ...

  9. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

随机推荐

  1. 运行 jcontrol 报 libXext.so.6: cannot open shared object file 错误

    需要安装额外库: yum install libXext.x86_64 yum install libXrender.x86_64 yum install libXtst.x86_64

  2. Linux命令——lsb_release

    简介 LSB是Linux Standard Base(Linux标准库)的缩写, lsb_release命令 用来与具体Linux发行版相关的Linux标准库信息. 注:LSB的译法有Linux标准库 ...

  3. spark-submit之使用pyspark

    在linux下,执行pyspark代码 —— 实测有效:但是并不是所有的包都能够成功,一些很复杂的包或者对C依赖很深的包例如 numpy, pandas, scipy等,无法通过本方法实现:对一些比较 ...

  4. c++第五次博客作业

           C++虚函数,纯虚函数,抽象类以及虚基类的区别   Part1.C++中的虚函数 什么是虚函数: 直观表达就是,如果一个函数的声明中有 virtual 关键字,那么这个函数就是虚函数. ...

  5. Java学习笔记——第3篇

    面向对象 结构化程序的任何一个结构都具有唯一的入口和唯一的出口,并且程序不会出现死循环. 虽然Java是面向对象的,但Java的方法里则是一种结构化的程序流. 面向对象的基本思想:类.对象.继承.封装 ...

  6. Codeforces Round #512 (Div. 2) D. Vasya and Triangle(几何+思维)

    题目 题意: 给出 n,m,k ,让你在长为 n,宽为 m 的坐标系里构建一个三角形,使得面积= n*m/k.如果存在,输出“YES”,输出三角形三个顶点的坐标:  如果不存在,输出“NO”. 思路: ...

  7. MySQL服务器

    ---恢复内容开始--- mysql是基于C/S端的服务器软件 mysql服务端 -server端开启 -解析指令 -对文件夹.文件.数据的增删改查 mysql客户端 -连接S段 -发送指令(sql语 ...

  8. Light OJ - 1026 - Critical Links(图论-Tarjan算法求无向图的桥数) - 带详细注释

     原题链接   无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 也可以先用Tajan()进行dfs算出所有点 的low和dfn值,并记录dfs过程中每个 点的父节点:然后再把所有点遍历一遍 ...

  9. C++读取中文或英文文件空格分割

    // show file content - sbumpc() example #include <iostream> // std::cout, std::streambuf #incl ...

  10. mysql安装笔记

    MySQL-mysql 8.0.11安装教程 - Laumians - 博客园  https://www.cnblogs.com/laumians-notes/p/9069498.html mysql ...