Python控制键盘鼠标:pynput,mouse,keyboard

本文详细介绍了Pynput库的使用方法,包括如何利用pynput.mouse和pynput.keyboard模块控制和监控鼠标及键盘操作,提供了丰富的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mouse:顾名思义,是控制鼠标的模块,本篇不打算介绍,有兴趣可以看官网mouse

keyboard:同样,是控制键盘的模块,可以完全控制键盘,本篇不打算介绍,源码很少,有兴趣可以看官网keyboard

一.介绍

pynput这个库让你可以控制和监控输入设备,它包含一个子模块来控制和监控该种输入设备:

  • pynput.mouse:包含控制和监控鼠标或者触摸板的类。

  • pynput.keyboard:包含控制和监控键盘的类。

两个子模块的结构,两者结构相同

二.实例

2.1  pynput.mouse

 

from pynput.mouse import Button, Controller,Listener

# Controller类
m = Controller()
print('鼠标的坐标:{0}'.format(m.position))
m.position = (500, 200)
print('设置鼠标的坐标:{0}'.format(m.position))
# 相对于当前位置移动鼠标
m.move(m.position[0],m.position[1])
# 按下鼠标左键以及松开鼠标左键,按下并不是点击
m.press(Button.left)
m.release(Button.left)
#双击鼠标右键
m.click(Button.right, 2)
#滚动
m.scroll(0, 2)


# Listener类,监听鼠标事件
def on_move(x, y):
    print('移动到了:{0}'.format((x, y)))

def on_click(x, y, button, pressed):
    print('{0} at {1}'.format('按下' if pressed else '松开',(x, y)))
    if not pressed:
        # 停止监听
        return False
# 监听滚动事件
def on_scroll(x, y, dx, dy):
    print('滚动到: {0}'.format((x, y)))

with Listener(on_move=on_move,on_click=on_click,on_scroll=on_scroll) as listener:
    listener.join()
pynput.mouse

运行结果:

 

2.2  pynput.keyboard

keyboard是支持线程的

 

from pynput.keyboard import Key, Controller,Listener

keyboard = Controller()

# 按下空格和释放空格
keyboard.press(Key.space)
keyboard.release(Key.space)

# 按下a键和释放a键
keyboard.press('a')
keyboard.release('a')
# 按下shift,但是物理端不换,只对本次设置有效
with keyboard.pressed(Key.shift):
    keyboard.press('a')
    keyboard.release('a')
    keyboard.press('b')
keyboard.type('Hello World')




def on_press(key):
    print('{0} 被按下'.format(key))

def on_release(key):
    print('{0} 被释放'.format(key))
    if key == Key.esc:
        return False
# 创建监听
with Listener(on_press=on_press,on_release=on_release) as listener:
    listener.join()
pynput.keyboard

 

运行结果:

 

 

 reference: pynput

转载于:https://www.cnblogs.com/ganiner/p/9975946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值