Skip to content

Monitors the time spent on a PC and prevents using it after a certain time limit. Resets at a specified time.

Notifications You must be signed in to change notification settings

AspireOne/desktop-time-limiter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Made in a record time of 2 full days <3

desktop-time-limiter

Monitors the time spent on a PC and prevents using it after a certain time limit. Perfect for parents to set a time limit on children's PC. Resets at a specified time. The UI is in Czech. Variables that can be changed:

  • The hour the timer resets at
  • The time that passed
  • Password
  • Time limit
  • Inactivity threshold (after how much time the user is considered inactive)
  • State (pause/resume/close)

Behavior

  • When you open the program for the first time, it copies itself to AppData and sets itself to run on PC login.
  • The program itself can be accessed from tray. When the program window is opened, it's always on-top and cannot be moved outside the screen.
  • When a certain time level is reached (30 minutes left, 10 minutes left...), the program makes a notification sound and says out loud the remaining time.
  • When the maximal time set is reached, the user is logged out (but NO work is lost or closed) and the PC is "locked" - a dark transparent overlay is put over the whole screen, and the program is brought to front and cannot be closed. The user can log back in and won't be logged out again, but the dark overlay and program on top stays - it's always on top of other programs and no program can override it.
  • When the time to reset the limiter comes, the PC is "unlocked" - passed time is reset, the overlay is hidden and the program UI can be closed again.
  • The program updates itself automatically (according to releases here on github).
  • The program keeps a log - you can open it via the UI.

Security

The program deploys some light security against uninstalling or closing, but just very shallowly, because this is not the point of this program.

  • Invisible from Task Manager (can still be seen in "details" tab)
  • Can be closed only by Windows Shutdown event (and by closing it from the UI)
  • Copies itself to an arbitrary location
  • Runs on startup

If security was a concern, it would

  • be invisible from the list of run-on-startup apps in Task Manager (via re-applying Windows' RunOnce registry value)
  • deploy a second process that would monitor the program's run state and restart it if it was closed (either by getting the Process' Window handle or by polling current processes)
  • encrypt the config file where it stores variable values (by using a generic encryption/decryption algorithm on the text on writing/reading and obfuscating the encryption key and not loading it into memory to prevent memory dump),
  • vary it's location every time it launches
  • possibly get admin rights and move itself to Windows/system32 so that the user would be unable to close the process
  • exclude itself from Antivirus (via PowerShell's Set-MpPreference -ExclusionPath)
  • be renamed to something sneaky (like a generic windows process name)
  • have obfuscated code (to confuse IL instructions viewer and decompilers like DotPeek)

How to install

VirusTotal comes out clean (including ESET, McAfee, Kaspersky, Avast, MalwareBytes...), but Windows Defender's Machine Learning flags it - sometimes immediately, sometimes on the next PC login. If you're using Windows Defender, exclude the process "Wellbeing.exe" and location %appdata%\Roaming\Wellbeing

VirusTotal for version 2.0.3

image

Otherwise just download and run and it will take care of itself.

Screenshots

UI

image

Prompts

image image

Relatable meme for a good day

Project-completeness-over-time

About

Monitors the time spent on a PC and prevents using it after a certain time limit. Resets at a specified time.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages