Compartilhar via


Troca Rápida de Usuário

Quando um usuário faz logon em um computador, o sistema carrega seu perfil. Como cada usuário tem uma conta de usuário exclusiva, isso permite que vários usuários compartilhem um computador. Quando um usuário faz logon, as configurações da área de trabalho, os arquivos, os favoritos e o histórico que ele vê são dele; não podem ser acessados por outros usuários. Quando esse usuário faz logoff, seu perfil é preservado para a próxima vez que ele fizer logon. Em sistemas operacionais mais antigos, era necessário que um usuário fizesse logoff antes que outro usuário pudesse fazer logon. A partir do Windows XP, um usuário não precisa fazer logoff para permitir que outro usuário faça logon. Em vez disso, é possível que vários usuários façam logon e alternem rapidamente entre suas contas abertas. Esse recurso é chamado de troca rápida do usuário. A alternância para outra conta não altera o estado dos aplicativos que o usuário está executando no momento. Suponha, por exemplo, que um usuário permita que outro usuário alterne para sua conta enquanto o primeiro usuário estiver conectado. Quando o primeiro usuário volta para sua conta, seus aplicativos estão em execução e suas conexões de rede são preservadas. Portanto, parece que ambos os usuários estão usando o computador simultaneamente.

Se os seus aplicativos estiverem em conformidade com os requisitos do logotipo do Windows 2000, eles deverão funcionar com a troca rápida de usuários no Windows XP e em sistemas operacionais posteriores. No entanto, é importante ter esse cenário em mente ao desenvolver um aplicativo para que ele se comporte como os usuários esperam. Use as seguintes diretrizes ao escrever seus aplicativos:

  • Implementar uma verdadeira separação de perfis. O sistema fornece uma infraestrutura subjacente que suporta a separação dos dados do usuário, das configurações do usuário e das configurações do computador. Por exemplo, use a pasta Documentos do usuário para armazenar dados criados pelo usuário. Para localizar um diretório para dados específicos de aplicativos, use o sistema pasta conhecida com FOLDERID_RoamingAppData) ou, para sistemas operacionais mais antigos, o sistema CSIDL com CSIDL_APPDATA). Use FOLDERID_LocalAppData ou CSIDL_LOCAL_APPDATA para dados que não devem estar disponíveis para o usuário em outros computadores, como arquivos temporários.
  • Registre-se para receber a notificação de uma troca de usuário. Normalmente, um aplicativo não precisa ser notificado quando a alternância ocorre. No entanto, se o seu aplicativo precisar ser notificado sobre uma alteração de sessão, ele poderá se registrar para receber uma mensagem WM_WTSSESSION_CHANGE.
  • Esteja ciente de outras instâncias do seu aplicativo. Por exemplo, há ocasiões em que um aplicativo precisa baixar uma atualização da Internet. A atualização pode falhar se outro usuário estiver executando simultaneamente uma instância do aplicativo em outra sessão. Mesmo que a atualização seja bem-sucedida, ela pode fazer com que outras instâncias em execução do aplicativo se comportem de maneira imprevisível. Portanto, é melhor executar uma atualização dinâmica somente se não houver outras instâncias do aplicativo em execução. Antes de fazer o download de uma atualização do aplicativo, pode ser apropriado implementar um método que sinalize a todas as instâncias em execução do aplicativo para salvar os dados e sair de forma limpa.