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中的URLError异常的方法
Apr 30 Python
Python中的ctime()方法使用教程
May 22 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
python实现三维拟合的方法
Dec 29 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
python自动发微信监控报警
Sep 06 Python
python随机数分布random均匀分布实例
Nov 27 Python
Python JSON编解码方式原理详解
Jan 20 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
django queryset 去重 .distinct()说明
May 19 Python
python 实现图像快速替换某种颜色
Jun 04 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 url 加密解密函数代码
2011/08/26 PHP
php不写闭合标签的好处
2014/03/04 PHP
php绘制一个扇形的方法
2015/01/24 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
Python中针对函数处理的特殊方法
2014/03/06 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
python3.x实现发送邮件功能
2018/05/22 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
渔夫的故事教学反思
2014/02/14 职场文书
网页美工求职信范文
2014/04/17 职场文书
自主招生教师推荐信
2014/05/10 职场文书
中学音乐课教学反思
2016/02/18 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
Javascript设计模式之原型模式详细
2021/10/05 Javascript
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
python三子棋游戏
2022/05/04 Python