Python自带库,判断鼠标键盘是否按下

该代码示例展示了如何使用Python的ctypes库调用WindowsAPI来检测按键状态,特别是鼠标左键的按下和释放以及ESC键的按下,以便实现特定的程序控制。通过GetAsyncKeyState函数获取按键状态,并通过while循环实时监测。
部署运行你感兴趣的模型镜像
import win32con as wcon
import ctypes
from time import sleep

def isPressed(key):
    return(bool(ctypes.windll.user32.GetAsyncKeyState(key)&0x8000))
# 用0x8000与运算,是因为GetAsyncKeyState()返回的值,最左bit位的0、1分别代表按键状态抬起、按下

ESC=0x1B
LBUTTON = 0x01
press = 0
while True: 
    if(isPressed(LBUTTON)): # 每按下一次鼠标,press就加一
        press += 1
    if(isPressed(ESC)):    # 按下esc退出
        break
    sleep(0.1)             # 延时。按下和抬起按键之间的时间,足以执行很多次press加一
print(press)               # 输出,按下了多少次鼠标

win32con库里面有按键对应的key值,f12转到定义,到页面内 ctrl+f 查找即可。

其实与C语言引用Windows.h头文件来获取按键状态的做法类似:

#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)

int main(){
    while(1){
        if (KEY_DOWN(VK_ESCAPE)) // 按下了esc键,就执行
        {
	        Beep(300,500);    // 发出beep
            break;
	    }
        Sleep(100); // 延时100ms
    }
}

 p.s.转载的

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值