Question

Je suis en train de créer un utilitaire similaire à Super Fast Switcher utilisateur ( télécharger ), qui permet le changement d'utilisateur rapide sans passer par l'écran d'accueil.

J'ai une implémentation de travail en utilisant l'API non documentée WinStationConnectW (avec WTSEnumerateSessions), mais il ne peut passer à un utilisateur qui est déjà connecté.

Comment puis-je créer une session de connexion afin qu'il puisse passer à un utilisateur non connecté
Je ne ai besoin pour soutenir XP, bien qu'il serait agréable de travailler sur Vista / Seven. (Mon code actuel fait déjà)

Je sais que cela est possible parce que changement d'utilisateur Super Fast fait. (Bien qu'il a besoin d'un service Windows pour le faire)

J'écris C #, mais je peux traduire une réponse en C #.

Était-ce utile?

La solution

Je résolu ce problème dans XP en appelant la fonction InitiateInteractiveLogon sans papier dans l'objet COM dans ShellLocalMachine shgina.dll.

Cette méthode, qui ne peut être appelé par le compte système local, enregistre un utilisateur à la console. (Il ne peut pas connecter un utilisateur à une session RDP)

La version de la DLL fournie avec Windows 7 (et probablement aussi Vista) ne contient pas cette méthode.

Autres conseils

Quelles sont les versions de Windows que vous souhaitez cibler?

Je crois qu'il n'y a pas de façon simple. Pour Windows XP, il est GINA . Pour Windows Vista, il y a des 'fournisseurs d'informations d'identification'.

En outre, si vous ciblez Windows XP, vous pouvez créer un service, qui envoie des frappes sur le bureau WinLogon pour se connecter comme utilisateur les appuie sur le clavier. Cela a été fait par RealVNC ou UltraVNC, je ne me souviens pas. Cependant, cette approche ne fonctionne pas dans Windows Vista.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top