[英]Python check if Left Mouse Button is being held?
我对 Python 很陌生,我想做一种 Autoclicker,当我按住鼠标左键时,它会每 0.1 秒点击一次。 我的问题是,当我运行我的脚本时,我的鼠标立即开始点击。 我应该怎么办?:
import win32api
import time
from pynput.mouse import Button, Controller
mouse = Controller()
while True:
if win32api.GetAsyncKeyState(0x01):
mouse.click(Button.left, 1)
time.sleep(0.1)
else:
pass
谢谢
检查 if 条件中是否win32api.GetAsyncKeyState(0x01) < 0
。
我的问题是,当我运行我的脚本时,我的鼠标立即开始点击。 我应该怎么办?
如果 function 成功,则返回值指定自上次调用 GetAsyncKeyState 以来是否按下了键,以及该键当前是向上还是向下。 如果设置了最高有效位,则键按下,如果设置了最低有效位,则在上一次调用 GetAsyncKeyState 后按下了键。
您应该改用win32api.GetAsyncKeyState(0x01)&0x8000
。
现在,它唯一要做的就是单击一次,这使我的单击成为双击。
因为GetAsyncKeyState
检测到鼠标左键的键state。 当您按下鼠标左键时,调用了click
function, click
将实现鼠标左键按下和释放两个动作。 然后在while
循环的地方, GetAsyncKeyState
会检测到释放动作,这就是为什么双击后就停止了。
建议你设置鼠标左键启动,鼠标右键停止。
代码示例:
import win32api
import time
from pynput.mouse import Button, Controller
mouse = Controller()
while True:
if (win32api.GetAsyncKeyState(0x01)&0x8000 > 0):
flag = True
while flag == True:
mouse.click(Button.left, 1)
time.sleep(0.1)
if (win32api.GetAsyncKeyState(0x02)&0x8000 > 0):
flag = False
else:
pass
我使它与mouse5一起工作!
import win32api
import win32con
import time
from pynput.mouse import Button, Controller
mouse = Controller()
def ac():
if keystate < 0:
mouse.click(Button.left, 1)
time.sleep(0.1)
else:
pass
while True:
keystate = win32api.GetAsyncKeyState(0x06)
ac()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.