-1

我对 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

谢谢

4

3 回答 3

0

我使它与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()
于 2020-05-22T11:00:43.100 回答
0

我的问题是,当我运行我的脚本时,我的鼠标立即开始点击。我应该怎么办?

如果函数成功,则返回值指定自上次调用 GetAsyncKeyState 以来是否按下了键,以及该键当前是向上还是向下。如果设置了最高有效位,则键按下,如果设置了最低有效位,则在上一次调用 GetAsyncKeyState 后按下了键。

你应该win32api.GetAsyncKeyState(0x01)&0x8000改用。

现在,它唯一要做的就是单击一次,这使我的单击成为双击。

因为GetAsyncKeyState检测鼠标左键的按键状态。当按下鼠标左键时,该click函数被调用,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
于 2020-05-22T03:49:51.480 回答
0

在 if 条件下检查 if win32api.GetAsyncKeyState(0x01) < 0

于 2020-05-21T17:58:50.120 回答