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 变量类型及命名规则介绍
Jun 08 Python
python利用datetime模块计算时间差
Aug 04 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
Python实现打印实心和空心菱形
Nov 23 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 Python
python通过opencv调用摄像头操作实例分析
Jun 07 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 用sock技术发送邮件的函数
2007/07/21 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
javascript实现评分功能
2020/06/24 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
机械设计制造专业个人求职信
2013/09/25 职场文书
总监职责范文
2013/11/09 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
社区元宵节活动总结
2015/02/06 职场文书
北京爱情故事观后感
2015/06/12 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书