Alterações de desligamento do Windows Vista
A tabela a seguir resume as diferenças entre o desligamento no Windows Vista e no Windows XP.
Recurso | Windows XP | Windows Vista |
---|---|---|
Bloqueio do desligamento | Os aplicativos podem atrasar a resposta a WM_QUERYENDSESSION por 5 segundos e, em seguida, o sistema permite que o usuário encerre o aplicativo. Aplicativos que retornam TRUE em resposta a WM_QUERYENDSESSION podem atrasar a resposta a WM_ENDSESSION por 5 segundos e, em seguida, o sistema permite que o usuário encerre o aplicativo. | Os aplicativos podem atrasar a resposta a WM_QUERYENDSESSION por 5 segundos e, em seguida, o sistema permite que o usuário continue ou cancele o desligamento. Aplicativos que retornam TRUE em resposta a WM_QUERYENDSESSION podem atrasar a resposta a WM_ENDSESSION por 5 segundos e, em seguida, o sistema permite que o usuário continue ou cancele o desligamento. |
Cancelando o desligamento | Se um aplicativo retornar FALSE em resposta a WM_QUERYENDSESSION, o desligamento será cancelado na maioria dos casos. No entanto, nenhuma interface do usuário é exibida, portanto, o usuário pode não estar ciente de que o desligamento foi cancelado. | Se um aplicativo retornar FALSE em resposta a WM_QUERYENDSESSION, ele ainda aparecerá na interface do usuário de desligamento. Observe que o sistema não permite que aplicativos ou aplicativos de console sem uma janela visível cancelem o desligamento. Esses aplicativos serão encerrados automaticamente se não responderem a WM_QUERYENDSESSION ou WM_ENDSESSION dentro de 5 segundos ou se retornarem FALSE em resposta a WM_QUERYENDSESSION. |
Desligar interface do usuário | O sistema exibe uma caixa de diálogo para cada aplicativo que bloqueia o desligamento. Se o usuário clicar no botão Encerrar Agora , o aplicativo será encerrado. Se o usuário clicar no botão Cancelar , o desligamento será cancelado e o aplicativo continuará sendo executado. | O sistema exibe uma interface do usuário de tela inteira que identifica todos os aplicativos que bloqueiam o desligamento e seus motivos para fazer isso (se eles registraram um motivo usando ShutdownBlockReasonCreate). |
Práticas Recomendadas
- Os aplicativos não devem bloquear o desligamento. Responda a WM_QUERYENDSESSION o mais rápido possível e adie as atividades de limpeza até processar a mensagem WM_ENDSESSION .
- Os aplicativos que devem bloquear o desligamento devem usar a nova função ShutdownBlockReasonCreate para registrar uma cadeia de caracteres que explica o motivo para o usuário. O usuário pode decidir se deseja continuar ou cancelar o desligamento.
- Os aplicativos não podem depender da capacidade de bloquear o desligamento.