Hook Welcome screen Windows Service

  • Thread starter Thread starter Ty
  • Start date Start date
T

Ty

Hello all,
What I am attempting to accomplish is much like you see with virtual
keyboards on tablet PCs where the the keyboard is visible at the log
in or welcome screen.

My goal is to be able to show a message at the log in screen before
the user logs in. In my employment I often have to complete work on
users PC after hours and because some issues are user specific I have
to reset their domain passwords so I can log in as the user to repair
the issue and I would like the ability to show a message to the user
that their password has been changed or other information before they
try to log in.


My first thought was that I needed a Windows service. I have created
the service and it is installed and running, however I have the
following issues. In XP the message form (a simple form with no
border
and no other controls except a label) shows when I start the service,
but when I do a restart the form does not show until I log in. I am
running it under the LocalSystem account which from reading is
suppose
to start before the user logs in. In Vista I get the interactive
services popup and the form is never shown. I understand that was a
security feature added to Vista.


Since there is the on screen keyboard and also some messages if your
PC has a finger print scanner at the log in screen on both XP and
Vista I would think there is a way to show a message, but information
is hard to come by.


I would appreciate any thoughts on this.


Ty
 
First, try using PsExec which is designed for similar purposes. It first
extracts a service that is embedded in the binary and installs it on the
target computer(See CreateService/OpenSCManager first parameter), then talks
to it. Duplicating this functionality takes time.

Second, to show a message from a service, use WTSSendMessage(). This
function behaves like MessageBox, not SendMessage despite it's name. It
works on Vista, but you have to give it the correct session ID.

PsExec:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

Service Changes for Windows Vista:
http://msdn.microsoft.com/en-us/library/bb203962(VS.85).aspx

WTSSendMessage:
http://msdn.microsoft.com/en-us/library/aa383842(VS.85).aspx
 
Most of the apps that do things like that likely provide another layer on
top of the GINA.dll. I think you'll have problems overriding/amending the
GUI before a user session is created as I believe that stage of the UI is
owned by WinLogon rather than the explorer shell itself.

From what I recall MS have some samples for providing a pass-through layer
atop the GINA that you can use to add logon functionality. Last time I
looked into this it was way back in the days of Win2000 though so it may
have all changed.

Hope that helps some,
-Alex
 
Back
Top