Sto cercando di creare qualcosa come Manic Time - che è un'applicazione che tiene traccia di ciò che l'utente sta attualmente lavorando. Ha funzionato perfettamente su Windows, ma non supporta Linux.
Ha caratteristiche pazze, ma il core è fondamentalmente solo il monitoraggio di ciò che è la finestra corrente 'attiva', è processo, titolo della finestra ecc.
Ho pensato a questo problema per un po 'di tempo ed ecco lo pseudo-codice Pythonic che ho scoperto, ma non sono sicuro che questa sia la strada da percorrere.
# The script will probably run as a daemon
while True:
# Get process, window title, etc.
wnd_details = get_active_window_details()
# Save the current timestamp and the details to a database (SQLite)
insert_in_db(current_timestamp, wnd_details)
# Wait for a second
sleep(1000)
L'esecuzione di una query di scrittura al secondo influirà sulle prestazioni?
Un'ottimizzazione potrebbe essere quella di ricordare quali erano i dettagli della finestra precedente e scrivere sul database solo quando la finestra cambia (l'utente è passato a un'altra applicazione) ma ciò aggiungerà complessità non necessaria al codice.
Ancora un'altra cosa da esaminare potrebbe essere una sorta di hook o callback, quindi il mio codice Python viene chiamato ogni volta che si verifica una modifica di Window (come una nuova finestra viene creata o la finestra attiva è cambiata) Immagino che Windows abbia qualcosa di simile a questo , ma non ho idea di Linux.