Anulowanie zamknięcia systemu Windows 7 wyłącza przycisk zasilania

12

Zwykle naciśnięcie przycisku zasilania raz inicjuje zamknięcie systemu Windows 7.

Jeśli nadal działają jakieś programy, które się nie zamykają (np. Oczekiwanie na odpowiedź dialogową), system Windows nakłada ekran na okno dialogowe umożliwiające użytkownikowi anulowanie wyłączenia.

Właśnie zauważyłem, że w dwóch różnych systemach tutaj, użycie tej opcji anulowania wyłącza wyłączenie za pomocą przycisku zasilania. Przycisk zasilania może być nadal używany do zabijania systemu przez przytrzymanie go przez kilka sekund, przy użyciu przycisku menu Start do wyłączenia komputera nadal działa.

Kroki ku reprodukcji:

  1. Otwórz Notatnik, wpisz kilka znaków. Nie oszczędzaj.
  2. Naciśnij przycisk zasilania komputera.
  3. Poczekaj, aż pojawi się ciemny ekran.
  4. Naciśnij anuluj.
  5. Naciśnij ponownie przycisk zasilania. Zauważ, jak nic się nie dzieje.

Jaki jest powód tego zachowania i czy można to wyłączyć, aby zawsze próbować wyłączyć komputer po naciśnięciu przycisku zasilania?

Jens
źródło
1
Chcesz pokazać, że nie pojawi się ekran, który zawiera Force Shutdowni Cancelczy po prostu chcesz używać przycisku zasilania w celu wyłączenia go ponownie?
avirk
Czy systemy są tej samej marki i modelu?
Ramhound,
2
@Avrik: Chciałbym, aby przycisk zasilania mógł ponownie zamknąć system.
Jens
@Ramhound: Nie, wcale nie. W tej chwili nie mam ich specyfikacji sprzętowej, ale jeden system był najnowszym rdzeniem i3, a drugi był raczej przestarzałym systemem opartym na Pentium.
Jens

Odpowiedzi:

14

To znany problem: http://support.microsoft.com/kb/2719667/en-us?sd=rss&spid=14498 (dość zabawne, że akurat widziałem go ostatnio w kanale RSS bazy wiedzy)

Jeśli aplikacja uniemożliwia zamknięcie systemu Windows (np. Niezapisana praca), system Windows poczeka 60 sekund w oknie dialogowym wymuszonego zamknięcia przed wymuszeniem zamknięcia aplikacji, aby można było kontynuować zamykanie. Jeśli użytkownik anuluje okno dialogowe wymuszonego zamykania, system Windows nadal zachowuje 60-sekundową wartość limitu czasu. W rezultacie, następnym razem, gdy nastąpi wyłączenie, nawet jeśli nie ma żadnych aplikacji blokujących, zamknięcie zostanie opóźnione do momentu wygaśnięcia wartości limitu czasu.

To zachowanie występuje tylko podczas konfigurowania przycisku zasilania w celu wyłączenia urządzenia. Podczas zamykania systemu Windows za pomocą menu Start problem nie występuje, ponieważ wartość limitu czasu nie jest zachowywana podczas anulowania w oknie dialogowym wymuszonego zamknięcia.

Niestety obejściem problemu jest:

Aby obejść ten problem, użyj zamiast tego opcji zamykania z menu Start systemu Windows.

Mark Sowul
źródło
Czy nie powinno też odczekać minuty przed ponownym naciśnięciem przycisku?
Synetech,
Dziękuję za odpowiedź! Link do artykułu z bazy wiedzy jest bardzo pomocny.
Jens
7

Udało mi się odtworzyć to zachowanie na moim HP DV7 (z dodatkiem SP1 i bez niego). Wszystko działo się dokładnie tak, jak powiedziałeś, dopóki komputer nagle się nie zamknął.

Dalsze dochodzenie wykazało, że anulowanie wyłączenia nie wyłącza przycisku zasilania. Po prostu się opóźnia .

Przykład działania opóźnienia

  1. Otwórz Notatnik, wpisz kilka znaków. Nie oszczędzaj.

  2. Naciśnij przycisk zasilania komputera.

  3. Poczekaj, aż pojawi się ciemny ekran.

  4. Kliknij Cancel.

  5. Spróbuj wykonać jedną z następujących czynności:

    • Naciśnij natychmiast przycisk zasilania.

      Nic się nie stanie od razu, ale komputer spróbuje się zamknąć dokładnie 90 sekund po pierwszym naciśnięciu przycisku zasilania.

    • Poczekaj, aż upłynie 90 sekund po pierwszym naciśnięciu przycisku zasilania.

      Jeśli teraz naciśniesz przycisk zasilania, komputer spróbuje natychmiast się wyłączyć.

Racjonalne uzasadnienie

System Windows zapobiega próbom wyłączania komputera przez przycisk zasilania więcej niż raz na 90 sekund. Mogę tylko zgadywać, ale przypuszczam, że ma to zapobiec wielokrotnym próbom zamknięcia z powodu nieprawidłowego działania przycisku zasilania lub przypadkowego naciśnięcia go.

[C] czy można wyłączyć, aby zawsze próbować wyłączyć komputer po naciśnięciu przycisku zasilania?

Nie mogłem znaleźć żadnej dokumentacji dotyczącej tego zachowania, nie mówiąc już o sposobie jego modyfikacji.

Ale aby zamknąć komputer po nieudanej próbie, po prostu zamknij aplikację zapobiegającą wyłączeniu i wykonaj jedną z następujących czynności:

  • Naciśnij ponownie przycisk zasilania. Komputer wyłączy się automatycznie.

  • Kliknij Start -> Shut down. Nie ma opóźnienia, jeśli zrobisz to w ten sposób.

Dennis
źródło
1
Hmm, artykuł KB, z którym Mark się łączy, wskazuje, że limit czasu wynosi 60 sekund, a nie 90.
Synetech,
Zmierzyłem to dwukrotnie. To było dokładnie 90 sekund.
Dennis
Zastanawiam się, czy istnieje ustawienie, które ma na to wpływ, WaitToKillAppTimeoutna przykład na XP (nie mogę znaleźć rozstrzygających dowodów na to, czy to faktycznie działa w systemie Windows 7. Jeśli nie, to może dlatego, że jest zakodowane na stałe lub przechowywane w innym miejscu w stosunku do KB2719667; co wtedy nasuwa pytanie, dlaczego twoje różni się od artykułu KB).
Synetech,
Ponownie sprawdziłem czas, żeby mieć pewność: minęło 90 sekund po pierwszym naciśnięciu przycisku zasilania, a nie 60 sekund po pojawieniu się okna dialogowego „wymuszonego wyłączenia”.
Dennis
Tak, ale dlaczego ? Czy można to skonfigurować?
Synetech,
1

Po naciśnięciu przycisku zasilania system Windows rozpoczyna przejście do zamykania systemu i rozpoczyna zamykanie wszystkich aplikacji sesji użytkownika (system znajduje się wtedy w stanie shutdown_in_progress ), ale gdy najpierw trzeba zapisać niektóre prace, przejście jest w toku, aż aplikacja będzie poprawnie działała Zamknięte.

wprowadź opis zdjęcia tutaj

Rozpoczęcie kolejnej sekwencji zamykania zostanie odrzucone, ponieważ jest ona w toku, jeśli zapiszesz ten plik, zobaczysz, że przejście do zamykania będzie kontynuowane samo przez się.


źródło