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 18 Python
python实现矩阵乘法的方法
Jun 28 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
python 实现登录网页的操作方法
May 11 Python
在python中实现强制关闭线程的示例
Jan 22 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
python每天定时运行某程序代码
Aug 16 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php显示时间常用方法小结
2015/06/05 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
js实现放大镜特效
2017/05/18 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
python编程实现希尔排序
2017/04/13 Python
python安装twisted的问题解析
2018/08/21 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
python实现电子词典
2020/03/03 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
开业典礼致辞
2015/07/29 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
PHP新手指南
2021/04/01 PHP