簡體   English   中英

為什么我的 while 循環不適用於這些函數?

[英]Why does my while loop not work with these functions?

當我自己有這個while循環時,它可以工作,但是使用這些函數,它就會停止工作。 我已經測試了這些函數以確保它們正常工作,並且它們是,但即使autoclicker == 1它也不會執行 while 循環。

autoclicker = 0

def on_release(key):
    global autoclicker

    if key == keyboard.Key.f6:
        autoclicker += 1
        print(autoclicker)

def on_press(key):
    global autoclicker

    if autoclicker == 1 and key == keyboard.Key.f6:
        autoclicker -= 1
        print(autoclicker)
        sys.exit()

with keyboard.Listener(
        on_release=on_release,
        on_press=on_press) as listener:
    listener.join()

while autoclicker == 1:
    mouse.press(Button.left)
    print(f"Left mouse button pressed.")

    mouse.release(Button.left)
    print(f"Left mouse button released.")

嘗試將while循環放入偵聽器中,如下所示:

with keyboard.Listener(
        on_release=on_release,
        on_press=on_press) as listener:
    

    while autoclicker == 1:
        mouse.press(Button.left)
        print(f"Left mouse button pressed.")

        mouse.release(Button.left)
        print(f"Left mouse button released.")

    listener.join()

您的代碼中存在一些問題。

  1. 如果您不想線程阻塞您的代碼。(您說您的代碼最終不會運行。)。更改:
with keyboard.Listener(
        on_release=on_release,
        on_press=on_press) as listener:
    listener.join()

listener = keyboard.Listener(on_release=on_release, on_press=on_press)
listener.start()
  1. 我不確定你為什么使用while autoclicker == 1因為你在開始時定義autoclicker = 0 ,你的 while 循環沒有意義。你可能需要對你的代碼進行一些更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM