亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

修復按鍵重復 Python

修復按鍵重復 Python

繁星coding 2022-07-12 16:12:36
我有一個等待按鍵并將它們記錄在控制臺中的腳本:from pynput.keyboard import Key, Listenerdef on_press(key):    print('{0} pressed'.format(        key))def on_release(key):    print('{0} release'.format(        key))    if key == Key.esc:        # Stop listener        return False# Collect events until releasedwith Listener(        on_press=on_press,        on_release=on_release) as listener:    listener.join()系統本身可以工作,但是,當按住某個鍵時,它會產生以下結果:Key.space pressedKey.space pressedKey.space pressedKey.space pressedKey.space pressedKey.space pressedKey.space pressedKey.space pressedKey.space pressed如何使線程暫停,直到釋放鍵?
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

我們可以使用一個集合來檢查當前正在按下哪個鍵。


pressing_keys_set = set()


def on_press(key):

    if key not in pressing_keys_set:

        print('{0} pressed'.format(key))

        pressing_keys_set.add(key)


def on_release(key):

    print('{0} release'.format(key))

    pressing_keys_set.remove(key)

    if key == Key.esc:

        # Stop listener

        return False


# Collect events until released

with Listener(

    on_press=on_press,

    on_release=on_release) as listener:

    listener.join()


查看完整回答
反對 回復 2022-07-12
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

此代碼必須幫助您


from pynput.keyboard import Key, Listener

is_released=False

def on_press(key):

    global is_released

    if is_released:

        print('{0} pressed'.format(key))

        is_released=False


def on_release(key):

    global is_released

    print('{0} release'.format( key))

    is_released=True

    if key == Key.esc:

        # Stop listener

        return False


# Collect events until released

with Listener(

        on_press=on_press,

        on_release=on_release) as listener:

    listener.join()


查看完整回答
反對 回復 2022-07-12
  • 2 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號