I'm trying to create a utility similar to Microsoft's abandoned Super Fast User Switcher (download), which allows fast user switching without going through the Welcome screen.
I have a working implementation using the undocumented WinStationConnectW
API (along with WTSEnumerateSessions
), but it can only switch to a user who is already logged in.
How can I create a login session so that it can switch to a user who is not logged in?
I only need to support XP, although it'd be nice to work on Vista / Seven. (My current code already does)
I know that this is possible because Super Fast User Switcher does it. (Although it needs a Windows service to do it)
I'm writing C#, but I can translate any answer into C#.
I solved this in XP by calling the undocumented InitiateInteractiveLogon
function in the ShellLocalMachine
COM object in shgina.dll
.
This method, which can only be called by the Local System account, will log a user on to the console. (It cannot log a user on to an RDP session)
The version of the DLL included with Windows 7 (and presumably also Vista) does not contain this method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With