Python自带库教程:如何判断鼠标键盘是否按下

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.转载的

物联沃分享整理
物联沃-IOTWORD物联网 » Python自带库教程:如何判断鼠标键盘是否按下

发表评论