Python: запись клавиатуры и определение смены окна (WIN10)

avatar
Krzysztof Chojnacki
8 августа 2021 в 16:12
36
0
0

Корпус: Я пытаюсь написать простую программу, которая записывает клавиатуру до тех пор, пока не произойдет смена окна. Например: если я перехожу с notepad.txt на любую вкладку Chrome, программа останавливает запись и сохраняет то, что было написано на клавиатуре.

Проблема: keyboard.record - это сам цикл, и он останавливается только тогда, когда прерывается событием клавиатуры, как в моем коде с клавишей 'esc'. Я думаю, что мне нужно использовать многопоточность (как в моем коде), поэтому запись и изменение окна отслеживаются в отдельных циклах. Как остановить запись при смене окна?

Код:

import keyboard
from win32gui import GetWindowText, GetForegroundWindow
import time
import _thread

def recording():
    recorded = keyboard.record(until = 'esc')

def window_change():
    current_window = GetWindowText(GetForegroundWindow())
    while True:
        new_window = GetWindowText(GetForegroundWindow())    
        if current_window != new_window:
            current_window = new_window
            print (GetWindowText(GetForegroundWindow()))
        time.sleep(0.5)
        
_thread.start_new_thread(recording,()) 
_thread.start_new_thread(window_change(),()) 
Источник

Ответы (0)