I am writing a program to record working time.
We need to check that the user does not just turn on the program and sits idle, but actually does the work. In the head there is an option to check the mouse with the keyboard and in the absence of actions for n minutes, include a timer that counts the amount of time spent in the empty.
After all, the user can use social networks, play games and this will be considered as working time. Consequently, it occurred to me that it was possible to compile a list of "work programs" and the time spent in others, not to count as waste.
The very essence of the question - what means to implement it? Examples of what may have, or articles. Unfortunately, not a C # guru, but somehow you need to write a diploma :)