python实战===python控制键盘鼠标:pynput
Python控制键盘鼠标:pynput
地址:https://pypi.python.org/pypi/pynput
这个库让你可以控制和监控输入设备。
对于每一种输入设备,它包含一个子包来控制和监控该种输入设备:
-
pynput.mouse:包含控制和监控鼠标或者触摸板的类。
-
pynput.keyboard:包含控制和监控键盘的类。
基本用法介绍:
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) #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()
顺便提一下
如果有任何问题,你可以在这里找到我 ,软件测试交流qq群,209092584
纸上得来终觉浅,绝知此事要躬行!
分类:
python实战
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)