8

我正在尝试创建一个类似于 Microsoft 废弃的Super Fast User Switcher下载)的实用程序,它允许快速用户切换而无需通过欢迎屏幕。

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

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

我知道这是可能的,因为 Super Fast User Switcher 做到了。(虽然它需要一个 Windows 服务来做到这一点)

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

4

2 回答 2

4

我在 XP 中通过调用COM 对象中未记录的InitiateInteractiveLogon函数解决了这个问题。ShellLocalMachineshgina.dll

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

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

于 2010-02-01T20:16:59.790 回答
-1

您要定位哪些 Windows 版本?

我相信没有简单的方法。对于 Windows XP,有GINA。对于 Windows Vista,有“凭据提供程序”。

此外,如果您的目标是 Windows XP,您可以创建服务,将击键发送到 WinLogon 桌面以登录,就像用户在键盘上按下它们一样。这是由 RealVNC 或 UltraVNC 完成的,我不记得了。但是,这种方法在 Windows Vista 中不起作用。

于 2010-01-31T12:09:51.840 回答