8

Microsoft の放棄されたSuper Fast User Switcher (ダウンロード) に似たユーティリティを作成しようとしています。これにより、ようこそ画面を経由せずにユーザーをすばやく切り替えることができます。

文書化されていないWinStationConnectWAPI を (とともにWTSEnumerateSessions) 使用して機能する実装がありますが、既にログインしているユーザーにしか切り替えることができません。

ログインしていないユーザーに切り替えることができるように、ログイン セッションを作成するにはどうすればよいですか?
XP をサポートする必要があるだけですが、Vista / Seven で作業できればよいのですが。(私の現在のコードはすでに行っています)

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 に答える