Secure Timer Control

I have written a logon program that looks up the time left in your account (via TCP/IP) and then lets you use the PC for X number of minutes.

When your time is up the logon screen comes up again and blocks you from using the PC. The logon screen is quite secure (no ctrl- alt-del etc), but once you'ce logged in, it's possible to end the timer task.

Because the timer program sends message once a minute, the server knows very quickly, but I'd like to make it more difficult to shutdown the program. I've considered using a device driver - This is how I think it should work:

the device driver is loaded on startup.
when you press a certain key combination, the driver is invoked and brings up the logon box. you log in and when you run out of time, the driver brings up the logon box again.

Questions:
Does this sound like it can be implemented in this way?

Can you have a hotkey to bring up the logon box? How would this be done?

Would the logon box be part of the driver or a dll?

Would this driver be able to communicate via tcp/ip?

Thanks
Richard
PS. This is probably worth more points, but I'm a bit low right now!
richweedAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sperlingCommented:
First of all... Is this Windows 3.1, 95 or NT

If we're talking win 95 and/or NT, I think I can give you some ideas on how to implement this, avoiding the driver which you can't write in Delphi anyway.

Regards,

Erik.
0
richweedAuthor Commented:
Win95
0
barddzenCommented:
If you are wishing to use this in a Cafe or Network environment, there is a program available called Cyber-Time that may do the trick.It's URL is:  http://www.cybertimesoftware.comOtherwise, I've written several applications that do not allow the user to close the application.  All you have to do it place some code into the:QUERYUNLOAD() event of the main form.  Then you could set a conditional shutdown as you wish.  You'll notice there is a "Cancel" parameter that is boolean, to allow or disallow the application to close.If you wish, I can also post some code to hide your application from the task list.  Let me know either way.
0
Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

richweedAuthor Commented:
The program is an access control system similar to Cybertime, but not exactly the same. Cybertime looks good though!

Call me crazy, but do you mean the closequery event of the main form? That has the canclose parameter. This doesn't stop you doing an end task though?

The code to hide the program from the task list would be helpful, thanks.

Any idea where I can find out more about the Guardian Security system mentioned at cybertime?
0
richweedAuthor Commented:
barddzen

I need to repost this question as I need an answer soon.

Please feel free to answer again.

Thanks

Richard
0
sperlingCommented:
Create a small program, something like this:

program Project1;

uses
  whatever...

function RegisterServiceProcess (dwProcessID, dwType : DWORD) : DWORD; stdcall; external 'kernel32' name 'RegisterServiceProcess';

begin
  RegisterServiceProcess(0, 1);
  repeat
    if LoginAppIsRunning or UserHasMoreTimeLeft then begin
      Sleep (60 * 1000);  // Wait one minute, consumes no CPU
    end else begin
      StartLoginApp
    end;
  until false;
end.


RegisterServiceProcess is only available in Win 95.

This app will be completely invisible if you do not reference unit Forms.pas

the login app should simply take over the screen and disable C-A-D and alike, and terminate as soon as the user has logged in.

If you need some kind of user identity to look up minutes left, have the login app store it in registry.

Regards,

Erik.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.