Description


Allows you to run applications at the Windows (XP/Vista/7) logon screen (Ctrl+Alt+Del) on system events, including logon/logoff, screen lock/unlock and startup/shutdown.

This application is a Windows Service, developed in a mixture of C# and VB .NET 2.0. It is designed to run as the local SYSTEM account, and will use low level WinAPI calls to inject applications into the Windows logon screen.

Watch the demo now



Installation


1. Make sure you have the .NET Framework 2.0 installed.
2. Download the latest recommended release.
3. Right-click on the downloaded ZIP file, select "Properties", and click the "Unblock" button at the bottom (if it is visible).
4. Extract the zip file’s contents to a directory on your local file system.
5. Open a Command Prompt as an administrator (right-click on the shortcut, and select "Run as administrator").
6. Run the following command to install the Windows Service, inserting the correct path for “LogonScreenLauncher.exe”:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe “C:\Program Files\Ellanet\Logon Screen Launcher\LogonScreenLauncher.exe”

Hopefully this has installed a new Windows Service called “Logon Screen Launcher”, which will automatically start under the SYSTEM account each time your machine starts.

Configuration


Once you have installed the Windows Service, you will need to configure which applications you want to start/stop when system events are detected. This can be done by editing the LogonApps.xml file, which you will find in the same directory that contains Logon Screen launcher.

You should see three examples of how Notepad, Calculator and Command Prompt are being started and stopped at specific system events. These examples should be removed once you have added your own applications.

You can add as many applications as you wish to the LogonApps.xml file. Use the examples provided to help you configure new applications.

Please be aware that the XML nodes and attributes are case sensitive, and should all be in lower case.

Let’s add a new application entry for Paint, that we would like to start when a user locks their workstation, and stopped when they unlock their workstation.

1. Open LogonApps.xml with a text editor like Notepad.
2. Take a copy of one of the example application entries, and paste it between the last “</application>” node and the “</applications>” node.
3. Change the “path” attribute value to the full file path for Paint (C:\Windows\System32\mspaint.exe).
4. Change the “display_lock” attribute in the “start” node to “true”. Make sure all other attributes in the “start” node are set to “false” (case sensitive).
5. Change the “display_unlock” attribute in the “stop” node to “true”. Make sure all other attributes in the “stop” node are set to “false” (case sensitive).
6. Save LogonApps.xml.

Your new application entry should look like this:

<application path="C:\Windows\System32\mspaint.exe">
  <start service_start="false" service_stop="false" logon="false" logoff="false" display_lock="true" display_unlock="false" /> 
  <stop service_start="false" service_stop="false" logon="false" logoff="false" display_lock="false" display_unlock="true" /> 
</application>
Tip: Make sure your XML file is correctly formed by opening it up in Internet Explorer (usually double-clicking the file will do this). If you see any errors, ensure you have copied the application node to the correct place, and there are no missing quotation marks or XML tags.

There is no need to restart the Logon Screen Launcher service after editing the LogonApps.xml file.

Troubleshooting


By far the most common problem you will find on Windows Vista and Windows 7, is that your application has been launched behind the standard logon screen wallpaper. You can bring your application to the front by using the Alt+Tab keys.

If you are using the Logon Screen Launcher to launch a custom application at the logon screen, then you will need to add some code to your application that will make it top most, or at least bring it to the front. Not a big deal even for beginner developers/scripters.

I plan to add some kind of standard application launcher in the next release, which will act as a springboard to launch applications in front of the login screen.

To get more visibility on what the Logon Screen Launcher is doing, you can set the “enabled” attribute in the “logging” node to “true”. This will log all events to the file specified in the “path” attribute.

Acknowledgements

Last edited Apr 16, 2013 at 12:40 PM by sw3103, version 30