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的内存泄漏及gc模块的使用分析
Jul 16 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
django模板语法学习之include示例详解
Dec 17 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
Python笔记之facade模式
Nov 20 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
如何真正的了解python装饰器
Aug 14 Python
python切片作为占位符使用实例讲解
Feb 17 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模拟post提交数据的方法
2015/02/12 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
Javascript模板技术
2007/04/27 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python解析json串与正则匹配对比方法
2018/12/20 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
毕业学生推荐信
2013/12/01 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
兴趣小组活动总结
2014/05/05 职场文书
党支部综合考察材料
2014/05/19 职场文书
励志演讲稿200字
2014/08/21 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
金砖之国观后感
2015/06/11 职场文书
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技