pynput——Python监听与操控鼠标/键盘

一、安装 pynput

pip install pynput

二、代码示例,逻辑很简单,看就完事了

鼠标操控与监听

#-*- coding:utf-8 -*-
from pynput.mouse import Button, Controller
## 导入鼠标监听器
from pynput.mouse import Listener

## ================================================
##              控制鼠标部分
## ================================================
# 读鼠标坐标
mouse = Controller()
print('当前鼠标坐标为 {0}'.format(mouse.position))
# 设置鼠标坐标
mouse.position = (10, 20)
print('鼠标坐标被移动到 {0}'.format(mouse.position))
# 移动鼠标到相对位置
mouse.move(5, -5)
# 按住和放开鼠标
mouse.press(Button.left)        # 按住鼠标左键
mouse.release(Button.left)      # 放开鼠标左键
# 点击鼠标
mouse.click(Button.left, 2)     # 点击鼠标2下
# 鼠标滚轮
mouse.scroll(0, 2)              # 滚动鼠标

## ================================================
##              监听鼠标部分
## ================================================

# 监听鼠标移动的方法
def on_move(x, y):
    print('Pointer moved to {0}'.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:
        # Stop listener
        return False

# 监听鼠标滚轮的方法
def on_scroll(x, y, dx, dy):
    print('Scrolled {0}'.format((x, y)))

# 注册三个监听方法的监听器
def main():
	with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
	    listener.join()
    
# 一个鼠标监听器是一个线程。线程,所有的回调将从线程调用。从任何地方调用pynput.mouse.Listener.stop,或者调用 pynput.mouse.Listener.StopException 或从回调中返回 False 来停止监听器。

if __name__ == '__main__':
	main()

键盘键入

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()

如果您想同时监听鼠标和键盘,就不能用with了,用下面代码代替

def main():
	# 连接事件以及释放
	mouse_listener = mouse.Listener(on_click=on_mouse_click)
	key_listener = keyboard.Listener(on_release=on_key_release)
	# 启动监听线程
	mouse_listener.start()
	key_listener.start()
	# 阻塞程序结束,不然程序直接结束了,就没法监控鼠标和键盘了
	mouse_listener.join()
	key_listener.join()
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答您的问题。 pynput是Python的一个第三方库,可以用来控制键盘鼠标。它提供了两个主要的模块:keyboard和mouse。以下是pynput的详细用法: 1. 安装pynput 在终端输入以下命令即可安装pynput: ``` pip install pynput ``` 2. 控制键盘 使用pynput控制键盘需要导入keyboard模块,然后创建一个Listener对象并定义回调函数来监听键盘事件。以下是一个示例代码: ```python from pynput import keyboard def on_press(key): try: print('Key {} pressed.'.format(key.char)) except AttributeError: print('Special key {} pressed.'.format(key)) def on_release(key): print('Key {} released.'.format(key)) with keyboard.Listener(on_press=on_press, on_release=on_release) as listener: listener.join() ``` 这个代码可以监听键盘按下和松开的事件,并打印出对应的键位信息。 3. 控制鼠标 使用pynput控制鼠标需要导入mouse模块,然后创建一个Controller对象来模拟鼠标操作。以下是一个示例代码: ```python from pynput.mouse import Button, Controller mouse = Controller() # 鼠标移动到(x, y)位置 mouse.position = (100, 200) # 鼠标左键单击 mouse.click(Button.left, 1) # 鼠标右键单击 mouse.click(Button.right, 1) # 鼠标滚轮向上滚动10个单位 mouse.scroll(0, 10) ``` 这个代码可以模拟鼠标移动、左键单击、右键单击和滚轮滚动操作。 以上就是pynput的详细用法,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值