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循环监控远程端口的方法
Mar 14 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
通过Python实现自动填写调查问卷
Sep 06 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
python微信公众号之关键词自动回复
Jun 15 Python
Python基于property实现类的特性操作示例
Jun 15 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
Python+PyQt5+MySQL实现天气管理系统
Jun 16 Python
Python 代码调试技巧示例代码
Aug 11 Python
pyqt5实现井字棋的示例代码
Dec 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
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
理解javascript async的用法
2017/08/22 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
Python中的流程控制详解
2021/02/18 Python
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
大学生村官工作感言
2014/01/10 职场文书
副总经理岗位职责
2014/03/16 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年仓库工作总结
2014/11/20 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
礼仪培训心得体会
2016/01/22 职场文书