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 30 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
python机器人行走步数问题的解决
Jan 29 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
Python3中函数参数传递方式实例详解
May 05 Python
基于python实现上传文件到OSS代码实例
May 09 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
Python中logging日志的四个等级和使用
Nov 17 Python
Python爬虫实战之爬取携程评论
Jun 02 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
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
怎么清空javascript数组
2013/05/11 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
pandas的object对象转时间对象的方法
2018/04/11 Python
python进度条显示之tqmd模块
2020/08/22 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
Python编写万花尺图案实例
2021/01/03 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
创建绿色社区汇报材料
2014/08/22 职场文书
合作与交流自我评价
2015/03/09 职场文书
学生会任命书范本
2015/09/21 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
情况说明书格式及范文
2019/06/24 职场文书
小学记事作文之200字
2019/08/06 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
MySQL 数据丢失排查案例
2021/05/08 MySQL
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL