Strona główna
» WINDOWS
»
Jak utrzymać wyświetlacz w stanie czuwania podczas działania aplikacji w systemie Windows 10
Jak utrzymać wyświetlacz w stanie czuwania podczas działania aplikacji w systemie Windows 10
Aby ekran pozostawał aktywny tylko podczas działania określonej aplikacji, należy użyć niewielkiej powłoki programu PowerShell, która prosi system Windows o utrzymanie włączonego ekranu, uruchamia aplikację, czeka na zakończenie procesu, a następnie anuluje żądanie. Pozwala to uniknąć zmiany aktywnego planu zasilania lub zgadywania, który limit czasu należy przywrócić. W tym przykładzie system Windows prosi również o pozostanie aktywnym, ponieważ automatyczne uśpienie spowodowałoby wyłączenie ekranu.
Co robi opakowanie
System Windows obsługuje SetThreadExecutionStateaplikacje, które muszą unikać wyłączania ekranu podczas bezczynności. ES_DISPLAY_REQUIREDŻąda włączonego ekranu, ES_SYSTEM_REQUIREDzapobiega uśpieniu systemu Windows i ES_CONTINUOUSwstrzymuje żądanie do momentu wyczyszczenia. Skrypt czeka na wybrany proces, a następnie czyści flagi w pliku finally. Zobacz dokumentację API firmy Microsoft .
Wrapper nie zmienia limitów czasu planu zasilania, a jego żądanie kończy się wraz ze skryptem. Nie może on obejść ręcznego trybu uśpienia, zamkniętej pokrywy laptopa ani zabezpieczeń krytycznego poziomu naładowania baterii, a także nie wyłącza wygaszacza ekranu. Utrzymywanie systemu Windows w stanie czuwania zużywa więcej energii, szczególnie przy zasilaniu bateryjnym.
1. Znajdź plik wykonywalny aplikacji
Użyj prawdziwego skrótu aplikacji .exe, a nie skrótu menu Start ani dokumentu. W przykładzie użyto Notatnika w [brakuje kontekstu ]. W przypadku innego programu otwórz WłaściwościC:\Windows\System32\notepad.exe skrótu i skopiuj [brakuje kontekstu ]; upewnij się, że wskazuje on na plik wykonywalny aplikacji.
W przypadku aplikacji jednoinstancyjnych najpierw zamknij istniejące instancje. Wrapper czeka tylko na proces, który uruchamia, więc program uruchamiający, który przekaże zadanie starszemu oknu, może zakończyć działanie zbyt wcześnie. W takim przypadku należy użyć pliku wykonywalnego aplikacji o długim czasie działania.
2. Utwórz i zapisz skrypt programu PowerShell
Otwórz Notatnik i wklej ten skrypt. Uruchomi on podaną ścieżkę aplikacji, poczeka na zakończenie procesu i wyczyści żądanie systemu Windows – nawet jeśli uruchomienie się nie powiedzie.
Wybierz Plik > Zapisz jako , zapisz plik w prostym miejscu, takim jak C:\Scripts\KeepDisplayAwake.ps1, i ustaw opcję Zapisz jako typ na Wszystkie pliki (*.*) . Dodaj .ps1rozszerzenie samodzielnie; w przeciwnym razie Notatnik może dodać .txt. Użyj UTF-8, jeśli okno dialogowe oferuje opcję kodowania.
Zapisz plik pomocniczy z rozszerzeniem .ps1 i wybierz opcję Wszystkie pliki, aby Notatnik nie dodawał pliku .txt.
3. Uruchom aplikację przez wrapper
Otwórz okno dialogowe Uruchom za pomocą klawisza Windows + R lub otwórz zwykły wiersz poleceń i wpisz to polecenie. Zmień lokalizację skryptu i ścieżkę wykonywalną, aby odpowiadały konfiguracji Twojego komputera.
-ExecutionPolicy BypassDotyczy tylko tego procesu programu PowerShell; nie zmienia trwale zasad komputera. Zasady w pracy lub szkole mogą nadal blokować skrypty. Uruchamiaj tylko kod, który rozumiesz, i postępuj zgodnie z zasadami administratora, jeśli skrypt zostanie zablokowany.
Po opcji -AppPath należy przekazać pełną ścieżkę wykonywalną, uwzględniając ścieżki zawierające spacje.
4. Potwierdź, że żądanie kończy się w aplikacji
PowerShell pozostaje aktywny, dopóki uruchomiony proces jest otwarty. Zamknij aplikację, aby powrócić do wiersza poleceń; finallyblok wyczyści żądanie. Jeśli najpierw zamkniesz PowerShell, żądanie zakończy się, a aplikacja może pozostać otwarta.
Przetestuj, pozostawiając aplikację otwartą dłużej niż zwykle, po wyłączeniu ekranu. Jeśli ekran się wyłączy, upewnij się, że konsola jest nadal zajęta, ścieżka wskazuje na długotrwały plik wykonywalny i że nie jest on nadpisywany przez ręczny tryb uśpienia ani zarządzaną politykę.
Funkcja pomocnicza pozostaje aktywna obok aplikacji; zamknięcie aplikacji przywraca kontrolę do programu PowerShell.
Sprawdź ustawienia wygaszacza ekranu osobno
Żądanie stanu wykonania nie zatrzymuje wygaszacza ekranu. Otwórz Ustawienia > Personalizacja > Ekran blokady , a następnie wybierz Ustawienia wygaszacza ekranu . Ustaw opcję (Brak) lub dostosuj czas oczekiwania, jeśli to konieczne; zachowaj opcję wznawiania logowania, jeśli chcesz, aby komputer blokował się po braku aktywności. Zobacz instrukcje dotyczące wygaszacza ekranu firmy Microsoft .
Wygaszacz ekranu ma własne ustawienia i może być wyświetlany nawet wtedy, gdy aktywne jest żądanie wyświetlenia.
Dlaczego nie użyć starego pliku wsadowego zmieniającego limit czasu?
powercfg /change monitor-timeout-acZmienia limit czasu wyświetlania po podłączeniu w aktywnym schemacie zasilania w minutach; nie jest to tymczasowe żądanie aplikacji. Przywrócenie zgadniętej wartości może nadpisać rzeczywiste ustawienia użytkownika, a polecenie AC-only nie obejmuje trybu bateryjnego. Microsoft dokumentuje opcje AC i DC w dokumentacji powercfg . Użyj wrappera dla jednej sesji aplikacji i ustawień zasilania systemu Windows, aby trwale zmienić limit czasu.
Rozwiązywanie problemów
Aplikacja otwiera się, ale wyświetlacz nadal jest w trybie uśpienia: Upewnij się, że okno programu PowerShell jest nadal zajęte przez skrypt. Jeśli natychmiast powrócił do wiersza poleceń, plik wykonywalny może być programem uruchamiającym, który kończy działanie po przekazaniu żądania.
PowerShell informuje, że ścieżka aplikacji brakuje: Sprawdź pisownię i cudzysłowy wokół -AppPath. Ścieżka ze spacjami musi pozostać w cudzysłowie.
System Windows blokuje skrypt: Postępuj zgodnie z polityką wykonywania na urządzeniu. Nie zmieniaj zarządzanej polityki ani nie ustawiaj stałej, nieograniczonej polityki tylko dla tego wrappera.
Wygaszacz ekranu nadal się uruchamia: Dostosuj wygaszacz ekranu osobno, korzystając z ustawień ekranu blokady powyżej; żądanie API go nie wyłączy.