Need program to run concurrently with windows login screen

Windows XP system on win2k3 domain -

How would I go about creating and running an application that would display a button on the windows login screen that would allow users to automatically login to the system using a precreated domain account.  I need this app to run concurrently with the windows login in such a way that users can either enter correct credentials or press a button to have the system log itself in without the user needing to know a valid domain username and password.
Who is Participating?
right, when windows starts it creates three unique desktops, one is the one you will be used to thinking of as your desktop, the one that runs you applications and whatever else you do while using the computer, the second is the screensaver desktop, (pretty self explanitory) and the third is the Winlogon desktop.  That is the one that the logon screen runs on. so its the one you are interested in.
there is a bit more information here.

Now for you to simply put a button on the logon screen it may be possible by some sort of system hook to change the default windows logon screen.  But i dont know anymore about that line of things.  

Now, if you want to go with the option of creating the custom gina its not too big a job, the msgina.dll file does not have to be completely rewritten, you can make a dll stub file which means you only have to write code for what you want to change and leave the rest intact.  unfortunately for changing the dialog this means making your own logon dialog box from scratch.  I did not find a way to incorporate the original.
There is more information here about both winlogon and gina.

If you want to continue with this route let me know and i will see what i can do to help, but first may i suggest a much easier solution that would seem to me to work fine.  there are keys in the registry called, LegalNoticeText and LegalNoticeCaption they can be used to pop up a message to the user before they logon (after the press ctrl - alt - del).  You could use this box to explain to  users without a username/password that a guest account has been created and they can use that by simply typing guest?

Let me know how you want to continue, i will do my best to help.

Isn't the easier thing to turn off entering user and password at logon and assume default ?
Theoretically you would create an app that you would run as service. This way no user needs to be logged on; if the computer's running the services are running (if everythings ok that is ;-) ).

This app should then check if logon.scr (the logon-screensaver app) is running. If so add a form containing a loginbutton to the apropriate desktop. If this button is clicked you could use a sendkey's function (te emulate a user typing on a keyboard) to provide logon information or even logon directly using some api-function or something?

But maby you could alter the logon.scr or write your own logon window.

Hope this inspires others.
I dont think it would be that easy. The desktop that runs logon dialog is designed to be a secure desktop basically to stop keyloggers capturing the username/password.   after saying that i found a site showing a way to do this in windows 2000 a while back, but i dont think it still works on xp.    

For the sendkeys idea to work your program would have to be running from the same desktop as winlogon.exe.

Your other alternative is to create a custom Gina.dll which ive done for windows 2000.  The problem with this for xp is  you lose some of the xp winlogon functions., like fast user switching.  

Hope this helps.
baal32Author Commented:
Seitou - fast user switching isn't a big deal anyway as these systems are one the domain.  I'm pretty clueless, so when you say that the app would need to run from the same desktop as winlogon.exe what does that mean exactly?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.