创建交互式登录会话

SLa*_*aks 8 .net c# c++ session winlogon

我正在尝试创建一个类似于微软废弃的超级快速用户切换器(下载)的实用程序,它允许快速用户切换而无需通过欢迎屏幕.

我有一个使用未记录的WinStationConnectWAPI(连同WTSEnumerateSessions)的工作实现,但它只能切换到已登录的用户.

如何创建登录会话以便切换到未登录的用户?
我只需要支持XP,虽然在Vista/Seven上工作会很好.(我目前的代码已经做了)

我知道这是可能的,因为Super Fast User Switcher可以做到这一点.(虽然它需要Windows服务才能完成)

我正在编写C#,但我可以将任何答案翻译成C#.

SLa*_*aks 6

我在XPInitiateInteractiveLogon中通过调用.ShellLocalMachineshgina.dll

此方法只能由本地系统帐户调用,它将让用户登录到控制台。(它无法让用户登录到 RDP 会话)

Windows 7(可能还有 Vista)附带的 DLL 版本不包含此方法。

  • 该函数没有文档记录,因此没有任何 Google 搜索结果。(谷歌尚未索引此答案)http://www.google.com/search?q=shgina.dll+ShellLocalMachine+%2BInitiateInteractiveLogon (4认同)