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

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

在按下鍵時記錄鼠標單擊,并在python中釋放相同的鍵時停止記錄

在按下鍵時記錄鼠標單擊,并在python中釋放相同的鍵時停止記錄

肥皂起泡泡 2021-05-05 18:13:55
我正在創建一個腳本,在該腳本中,如果用戶按f7鍵,它將開始記錄鼠標的點擊,而當他釋放按鈕時,它應該停止,除非用戶關閉程序,否則這種情況會發生。我編寫了一個代碼,該代碼在按f7鍵時開始記錄鍵,但是放開它仍會記錄該鍵,這也是因為鍵處于連續按下位置,它會繼續啟動多個偵聽器,并且數據會變得越來越多余。同樣在釋放f7之后,監聽器不會停止這是代碼from pynput import mouse, keyboardfrom pynput.keyboard import Key, Listenerimport picklex_pos = []y_pos = []both_pos = []file = open("test.txt", "wb")file.close()def on_press(key):    mouse_listener = mouse.Listener(on_click=on_click)    if (key==keyboard.Key.f7):        mouse_listener.start()        print("done")def on_release(key):        if (key==keyboard.Key.f7):        mouse_listener.stop()        print("closing file")        #file.close()def on_click(x, y, button, pressed):    if pressed:        print ("{0} {1}".format(x,y))        x_pos.append("{0}".format(x,y))        y_pos.append("{1}".format(x,y))        #print (x_pos)        #print (y_pos)              both_pos = x_pos, y_pos        with open("temp.txt", "ab") as file:            pickle.dump(both_pos, file)        print(both_pos)mouse_listener = mouse.Listener(on_click=on_click)#mouse_listener.start()with keyboard.Listener(on_press = on_press, on_release = on_release) as listener:    try:        #listener.start()        listener.join()    except MyException as e:        print('Done'.format(e.args[0]))
查看完整描述

1 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

您mouse_listener在on_release和中沒有相同的引用on_press。

取出mouse_listener = mouse.Listener(on_click=on_click)在on_press和界定mouse_listener既之前on_press和on_release


mouse_listener = mouse.Listener(on_click=on_click)


def on_press():

    # do on press stuff with mouse_listener

    pass


def on_release():

    # do on release stuff with mouse_listener

    pass 

將整個內容包裝在一個類中可能也值得


查看完整回答
反對 回復 2021-05-18
  • 1 回答
  • 0 關注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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