Python控制键盘鼠标pynput的详细用法


Posted in Python onJanuary 28, 2019

pynput这个库让你可以控制和监控输入设备。

对于每一种输入设备,它包含一个子包来控制和监控该种输入设备:

  • pynput.mouse:包含控制和监控鼠标或者触摸板的类。
  • pynput.keyboard:包含控制和监控键盘的类。

地址:https://pypi.python.org/pypi/pynput

基本用法介绍:

from pynput.mouse import Button, Controller
import time 

mouse = Controller()
print(mouse.position)
time.sleep(3)
print('The current pointer position is {0}'.format(mouse.position))


#set pointer positon
mouse.position = (277, 645)
print('now we have moved it to {0}'.format(mouse.position))

#鼠标移动(x,y)个距离
mouse.move(5, -5)
print(mouse.position)

mouse.press(Button.left)
mouse.release(Button.left)

#Double click
mouse.click(Button.left, 1)

#scroll two steps down
mouse.scroll(0, 500)

监控鼠标事件 :

from pynput import mouse

def on_move(x, y ):
 print('Pointer moved to {o}'.format(
  (x,y)))

def on_click(x, y , button, pressed):
 print('{0} at {1}'.format('Pressed' if pressed else 'Released', (x, y)))
 if not pressed:
  return False

def on_scroll(x, y ,dx, dy):
 print('scrolled {0} at {1}'.format(
  'down' if dy < 0 else 'up',
  (x, y)))

while True:
 with mouse.Listener( no_move = on_move,on_click = on_click,on_scroll = on_scroll) as listener:
  listener.join()

键盘输入用法:

from pynput.keyboard import Key, Controller

keyboard = Controller()
# 按下空格和释放空格
#Press and release space
keyboard.press(Key.space)
keyboard.release(Key.space)
# 按下a键和释放a键
#Type a lower case A ;this will work even if no key on the physical keyboard is labelled 'A'
keyboard.press('a')
keyboard.release('a')

#Type two upper case As
keyboard.press('A')
keyboard.release('A')
# or 
with keyboard .pressed(Key.shift):
 keyboard.press('a')
 keyboard.release('a')

#type 'hello world ' using the shortcut type method
keyboard.type('hello world')

键盘监听:

from pynput import keyboard

def on_press(key):
 try:
  print('alphanumeric key {0} pressed'.format(key.char))
 except AttributeError:
  print('special key {0} pressed'.format(key))

def on_release(key):
 print('{0} released'.format(key))
 if key == keyboard.Key.esc:
  return False

while True:
 with keyboard.Listener(
  on_press = on_press,
  on_release = on_release) as listener:
  listener.join()

对于鼠标来说,api就上面几个。但是对于键盘来说还要别的,详细的查看:http://pythonhosted.org/pynput/index.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用Python命令行传递实例化对象的方法
Nov 02 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python导入时小括号大作用
Jan 10 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Python中的全局变量如何理解
Jun 04 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 Python
Python编程源码报错解决方法总结经验分享
Oct 05 Python
python中数组和列表的简单实例
Mar 25 Python
用python 实现在不确定行数情况下多行输入方法
Jan 28 #Python
对python3中, print横向输出的方法详解
Jan 28 #Python
Python删除n行后的其他行方法
Jan 28 #Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 #Python
Python实现统计英文文章词频的方法分析
Jan 28 #Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 #Python
Python判断变量名是否合法的方法示例
Jan 28 #Python
You might like
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
python实现画圆功能
2018/01/25 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
详解Django CAS 解决方案
2019/10/30 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Django实现随机图形验证码的示例
2020/10/15 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
设计模式的基本要素是什么
2014/04/21 面试题
实习老师离校感言
2014/02/03 职场文书
学校卫生检查制度
2014/02/03 职场文书
会计的岗位职责
2014/03/15 职场文书
英文求职信范文
2014/05/23 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
企业百日安全活动总结
2015/05/07 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python