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