Udostępnij przez


Zmiany zamykania systemu Windows Vista

Poniższa tabela zawiera podsumowanie różnic między zamykaniem systemu Windows Vista i Windows XP.

Cecha Windows XP Windows Vista
Blokowanie zamknięcia Aplikacje mogą opóźniać reagowanie na WM_QUERYENDSESSION przez 5 sekund, a następnie system umożliwia użytkownikowi zakończenie aplikacji. Aplikacje, które zwracają true w odpowiedzi na WM_QUERYENDSESSION mogą opóźnić reagowanie na WM_ENDSESSION przez 5 sekund, a następnie system umożliwia użytkownikowi zakończenie aplikacji. Aplikacje mogą opóźniać reagowanie na WM_QUERYENDSESSION przez 5 sekund, a następnie system umożliwia użytkownikowi kontynuowanie lub anulowanie zamknięcia. Aplikacje zwracające true w odpowiedzi na WM_QUERYENDSESSION mogą opóźnić reagowanie na WM_ENDSESSION przez 5 sekund, a następnie system umożliwia użytkownikowi kontynuowanie lub anulowanie zamknięcia.
Anulowanie zamknięcia Jeśli aplikacja zwróci false w odpowiedzi na WM_QUERYENDSESSION, zamknięcie zostanie anulowane w większości przypadków. Jednak żaden interfejs użytkownika nie jest wyświetlany, więc użytkownik może nie wiedzieć, że zamknięcie zostało anulowane. Jeśli aplikacja zwraca false w odpowiedzi na WM_QUERYENDSESSION, nadal pojawia się w interfejsie użytkownika zamknięcia. Należy pamiętać, że system nie zezwala aplikacjom konsoli ani aplikacjom bez widocznego okna na anulowanie zamknięcia. Te aplikacje są automatycznie przerywane, jeśli nie odpowiadają na WM_QUERYENDSESSION lub WM_ENDSESSION w ciągu 5 sekund lub jeśli zwracają false w odpowiedzi na WM_QUERYENDSESSION.
Zamykanie interfejsu użytkownika System wyświetla okno dialogowe dla każdej aplikacji blokującej zamknięcie. Jeśli użytkownik kliknie przycisk Zakończ teraz, aplikacja zostanie zakończona. Jeśli użytkownik kliknie przycisk Anuluj, zamknięcie zostanie anulowane, a aplikacja będzie nadal działać. System wyświetla pełnoekranowy interfejs użytkownika, który identyfikuje wszystkie aplikacje blokujące zamknięcie i ich przyczyny (jeśli zarejestrowano przyczynę przy użyciu ShutdownBlockReasonUtwórz).

 

Najlepsze rozwiązania

  • Aplikacje nie powinny blokować zamykania. Odpowiedz na WM_QUERYENDSESSION tak szybko, jak to możliwe, i odrocz działania oczyszczania do czasu przetworzenia komunikatu WM_ENDSESSION.
  • Aplikacje, które muszą blokować zamknięcie, powinny używać nowej ShutdownBlockReasonCreate funkcji, aby zarejestrować ciąg, który wyjaśnia przyczynę dla użytkownika. Użytkownik może zdecydować, czy kontynuować, czy anulować zamknięcie.
  • Aplikacje nie mogą polegać na blokowaniu zamykania.