Changement rapide d'utilisateur
Lorsqu’un utilisateur se connecte à un ordinateur, le système charge son profil. Étant donné que chaque utilisateur a un compte d’utilisateur unique, cela permet à plusieurs utilisateurs de partager un ordinateur. Lorsqu’un utilisateur se connecte, les paramètres de Bureau, les fichiers, les favoris et l’historique qu’ils voient sont les siens. Ils ne sont pas accessibles par d’autres utilisateurs. Lorsque cet utilisateur se déconnecte, son profil est conservé pour sa prochaine connexion. Dans les systèmes d’exploitation plus anciens, un utilisateur devait se déconnecter avant qu’un autre utilisateur puisse se connecter. Depuis Windows XP, un utilisateur n’a pas à se déconnecter pour permettre à un autre utilisateur de se connecter. Au lieu de cela, il est possible que plusieurs utilisateurs se connectent et basculent rapidement entre leurs comptes ouverts. Cette fonctionnalité est appelée changement rapide d’utilisateur. Le passage à un autre compte ne modifie pas l’état des applications qu’un utilisateur exécute actuellement. Supposons, par exemple, qu’un utilisateur autorise un autre utilisateur à basculer vers son compte pendant que le premier utilisateur est connecté. Lorsque le premier utilisateur revient à son compte, ses applications s’exécutent et ses connexions réseau sont conservées. Par conséquent, il semble que les deux utilisateurs utilisent simultanément l’ordinateur.
Si vos applications sont conformes aux exigences du logo Windows 2000, elles doivent fonctionner avec le changement rapide d’utilisateur sur Windows XP et les systèmes d’exploitation ultérieurs. Toutefois, il est important de garder à l’esprit ce scénario lors du développement d’une application afin qu’elle se comporte selon les attentes des utilisateurs. Utilisez les instructions suivantes lors de l’écriture de vos applications :
- Implémentez une véritable séparation de profil. Le système fournit une infrastructure sous-jacente qui prend en charge la séparation des données utilisateur, des paramètres utilisateur et des paramètres d’ordinateur. Par exemple, utilisez le dossier Documents de l’utilisateur pour stocker les données créées par l’utilisateur. Pour localiser un répertoire pour les données spécifiques à l’application, utilisez le système de dossiers connu avec FOLDERID_RoamingAppData) ou, pour les systèmes d’exploitation plus anciens, le système CSIDL avec CSIDL_APPDATA). Utilisez FOLDERID_LocalAppData ou CSIDL_LOCAL_APPDATA pour les données qui ne doivent pas être disponibles pour l’utilisateur sur d’autres ordinateurs, tels que des fichiers temporaires.
- Inscrivez-vous à la notification d’un changement d’utilisateur. En règle générale, une application n’a pas besoin d’être avertie lorsque le changement se produit. Toutefois, si votre application doit être avertie d’un changement de session, elle peut s’inscrire pour recevoir un message WM_WTSSESSION_CHANGE.
- Tenez compte des autres instances de votre application. Par exemple, il arrive qu’une application télécharge une mise à jour à partir d’Internet. La mise à jour peut échouer si un autre utilisateur exécute simultanément une instance de l’application dans une autre session. Même si la mise à jour réussit, elle peut entraîner un comportement imprévisible d’autres instances en cours d’exécution de l’application. Par conséquent, il est préférable d’effectuer une mise à niveau dynamique uniquement si aucune autre instance de l’application n’est en cours d’exécution. Avant de télécharger une mise à jour d’application, il peut être approprié d’implémenter une méthode qui signale à toutes les instances en cours d’exécution de l’application pour enregistrer des données et quitter correctement.