Hey guys, got a really tricky problem I need to solve

Been asked to look into the creation of a testing program used in schools.

Here is what I need it to be able to do(secure stuff only)

On any WinOS system has to do this:

Be able to close any programs that may be open(so the student can't be Alt-Tabbing to notepad where their cheat code is, heh)

And actually, disable Alt-Tab would be nice so this isn't an issue no matter what.

Be able to prevent them from accessing any other software on their system - this program should fill the entire screen, even hide the taskbar on them from view.

So basically they can't do a single thing with the system until the testing program is finished.

The other stuf like storing the answeres inside a database and encryption, etc aren't a big issue for me just the ability to lockout the system except for the test program thats running

chain of events:

-They start program,
-Asked for Log-in ID and Username,
-If valid then program goes to server and grabs the test that
is waiting for them in their box(I guess..),
-Program maximizes and hides/covers the taskbar,
-Program disables alt-tab,
-Program eliminates any ability to minimize/close itself to expose desktop,
-when student is finished then program sends encrypted answer file to server and then closes itself and re-enables all the stuff it disabled

Anyone got any ideas on how to do some of this stuff?

thanx for any input
Posted on 2002-07-02 21:32:51 by Rockinronstar
For closing of windows, you can look at my Window Viewer application (attached). To hide the taskbar, simply maximize the window and make it topmost with SetWindowPos.
Posted on 2002-07-03 01:47:15 by comrade
it's called ACL and group policies, your teachers really should know this. Or make a DX fullscreen app, make it quit on ALT_TAB, thus failing the cheating student.
Posted on 2002-07-03 02:44:36 by Hiroshimator
Rockinronstar,
what you want to create is called a 'kiosk' application, and is totally possible under all versions of windoze. There is plenty of info available on this subject in the microsoft.public.vb.winapi newsgroup, discussing how to do things like disable Alt-Tab, prevent switching between apps, hide the task bar, etc. About the only thing you cannot do is disable the ctrl-alt-del sequence.

And to shut down already running processes (or processes yet to be started), just create a dll that gets injected into every process space (either by creating a hook, or by messing with the Debug APIs), then the dll can shut down the ones not allowed.

Obviously, for something like this, you should be able to make some counter-demands, like the preferred OS to run it on, minimum configuration, etc.
Posted on 2002-07-03 02:56:02 by sluggy
On 9x you can disable alt+tab and ctrl+alt+del by doing a
SystemParametersInfo with the SPI_SETSCREENSAVERRUNNING parameter.
Posted on 2002-07-03 05:23:14 by f0dder
I remember reading somewhere that it is possible to disable the alt, ctrl and delete key on all windows OS. I got that code from msdn IIRC.
Posted on 2002-07-03 07:31:51 by roticv
All (front, visible) windows activity is reduced to a screen-saver. The only way I know is to write a screen-saver and run it as if it was the main program.

The only backdraw is tha you cannot even launch other programs from the screen-saver, except in the background. For this reason all software must be absolutely bug-free and have no user interface, message boxes included.

Giovanni
Posted on 2002-07-03 08:48:09 by sch.jnn
You can easy disable ctrl+Alt+del in DirectX it even has a flag for it in SetCooperativeLevel : AllowCtrlAltDel if i recall corectly ;)

Until we enabled it for debug purpose we used to do this kind of deny Alt+Tab / ctrl+alt+del in HE with no problem,...

but designing a direcX only application with no dialogand pushbuttons/combobox support can be painfull ....

You can also stop processing windows messages and read keyboard/mouse input via directinput and then Alt+Tab will not work anymore
Posted on 2002-07-03 10:42:33 by BogdanOntanu