You may be familiar with apps such as Time Watcher. I'm looking forward to creating an application to be used on students' computers to control the amount of time one can be on a computer. When a student is given a computer, she will be allocated say 30 mins, a timer should start counting down while showing the time remaining. When time elapses, the computer should be locked and probably throw a black screen all over with a dialog for entering the passcode and minutes to be allocated for the new session. The app would have "taken control" of the computer (or at least its inputs) for the moment.

I will appreciate any leads.

PS: Technically, I just need to know "how" to take over the computer's controls & screen with VB.NET, I can manage the rest of the timer settings, passcode, etc.

Usually this turns into a cat and mouse game. You set up some controls then they find a way around the controls. Ever watch War Games?

Also, folk try this on stock installs of Windows yet it fails because you need something a lot deeper than running some VB.NET app.

The PC (Personal Computer) was as its inception designed with the idea that the person at the keyboard was in control. As folk try to wrest such control away, they run into the basic design and find they fight against the machine over and over along with the users of the PCs.

Finally, why create a system that can lose data? Student is say typing a paper and it times out. This is a bad system or idea. I can't see why anyone would agree to such a system.

commented: Thank you for your response. +4

rproffitt, Thank you! I understand what you are saying but, my settings a quite different; the users (secondary school students in East Africa) are not so technically literate to easily outsmart such a system, or, I would say, it will take them a long time.

And, I don't need a system that will cause data loss, I just want a way to reinforce time limits as in say, a student is only given 45 mins of computer time, and when this time elapses, he/she has to leave the computer for somebody else. One software, Time Watcher, only blinds the screen but doesn't touch the data.

Let's say you write the usual VB.NET app. The user presses control+alt+delete and does the usual end task on your app.

Now all your work is undone. How did you plan on fixing this?

I get it that you want to write such a thing but there is so many nuances here that you should make a list of the trouble areas then research how to fix or mitigate each one.

For now you have a solution so why not use that while you work out what your new app should do and not do.

PS. Some note you can disable control+alt+delete. Now cover the usual ALT+F4 combo. And let's not think these are all the ways around your VB.NET app. Maybe you should tell them your policy and if they don't comply, tell them they can get their computer time elsewhere.

There are quite a handful of products out there that are parental control apps that should be able to do what you want. Unfortunately, I don't personally have experience with any of them to make a specific recommendation. The three I always hear about are Qustodio, Norton Family, and Net Nanny. You could also try Kaspersky Safe Kids.

As far as doing this yourself with vb.net, I will echo the sentiment of everyone else who has posted before me in this thread, and say that I'm not quite sure that's the right tool for the job. You would need a much lower level language than .net in order to take control of the operating system.

For example, there are some Windows Powershell commands to lock the computer or log off the current session. I'm sure there is some way to create a little timer via a shell script that simply locks the computer after X amount of time. Locking the computer won't close any apps or lose any saved work, but it will use the operating system's built-in security in order to regain access, so we're not talking about a little program that can easily be force-quitted with Ctrl+Alt+Del once the screen is locked.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.