我正在尝试创建一个类似于Microsoft废弃的Super Fast User Switcher(download)的实用程序,它允许快速用户切换而无需通过欢迎屏幕。
我有一个使用未记录的WinStationConnectW
API(以及WTSEnumerateSessions
)的工作实现,但它只能切换到已登录的用户。
如何创建登录会话以便切换到未登录的用户? 我只需要支持XP,虽然在Vista / Seven上工作会很好。 (我目前的代码已经存在)
我知道这是可能的,因为Super Fast User Switcher可以做到这一点。 (虽然它需要Windows服务才能完成)
我正在编写C#,但我可以将任何答案翻译成C#。
答案 0 :(得分:4)
我在XP中通过调用InitiateInteractiveLogon
中ShellLocalMachine
COM对象中未记录的shgina.dll
函数解决了这个问题。
此方法只能由本地系统帐户调用,它会将用户登录到控制台。 (它无法将用户登录到RDP会话)
Windows 7附带的DLL版本(可能也是Vista)不包含此方法。
答案 1 :(得分:0)
您要定位哪些Windows版本?
我相信没有简单的方法。对于Windows XP,有GINA。对于Windows Vista,有“凭证提供商”。
此外,如果您的目标是Windows XP,则可以创建服务,将按键发送到WinLogon桌面以登录,就像用户在键盘上按下它们一样。这是由RealVNC或UltraVNC完成的,我不记得了。但是,此方法在Windows Vista中不起作用。