I'm plagued with a lack of willpower.
I recently started looking for solutions, and came across a program for macs called SelfControl which completely blocks one's access to a given set of websites for a given period of time (you can delete the program/restart your computer/do almost anything and it will still block those sites for the specified time period, and doesn't require a password to do it.)
Unfortunately, there are no windows analogues. The one that comes the closest is Cold Turkey. It has the functionality whereby you set a time in the future, specify a list of websites (or programs - eg explorer, firefox, chrome) and you are blocked from accessing them for the whole duration. No password can undo it, no system reboot, etc. The problem is that the program is a buggy piece of garbage, and in order to ensure that you're not locked out from websites forever, you have to run an uninstaller which is just an exe file accessible at any time which completely defeats the purpose of a self-imposed program lockout.
I want to make a better version of that program, or find a simple way to prevent access to a given set of programs over a given period of time with no way around it.
I've only taken a few introductory courses in java (math major), but the internet is really having a negative effect on my studies, and the only way I can do work is to eliminate all distractions.
What do I need to learn in order to make a program with the following properties:
Given a set of .exe files, and a time in the future
, this program will prevent access to the given .exe files until current time = given time
restarting the computer doesn't interfere with the program,
one can't uninstall the program until current time = given time,
one can't create another instance of the program to block itself
I don't care how much programming knowledge i need to acquire in order to make this program, so please give me a specific list of things that I need to study in order to make this happen, or if something like this exists, then please let me know.