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.

param(
    [Parameter(Mandatory = $true)]
    [ValidateScript({ Test-Path -LiteralPath $_ -PathType Leaf })]
    [string]$AppPath
)

Add-Type -TypeDefinition @'
using System.Runtime.InteropServices;
public static class DisplayAwake {
    [DllImport("kernel32.dll", SetLastError = true)]
    public static extern uint SetThreadExecutionState(uint esFlags);
}
'@

$ES_CONTINUOUS = [uint32]2147483648
$ES_SYSTEM_REQUIRED = [uint32]1
$ES_DISPLAY_REQUIRED = [uint32]2
$flags = [uint32]($ES_CONTINUOUS -bor $ES_SYSTEM_REQUIRED -bor $ES_DISPLAY_REQUIRED)

try {
    $previousState = [DisplayAwake]::SetThreadExecutionState($flags)
    if ($previousState -eq 0) {
        throw "Windows did not accept the execution-state request."
    }
    $process = Start-Process -FilePath $AppPath -PassThru
    $process.WaitForExit()
}
finally {
    [void][DisplayAwake]::SetThreadExecutionState($ES_CONTINUOUS)
}

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.

Okno dialogowe „Zapisz jako” w Notatniku z nazwą pliku KeepDisplayAwake.ps1 i zaznaczonymi wszystkimi plikami
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.

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\KeepDisplayAwake.ps1" -AppPath "C:\Windows\System32\notepad.exe"

-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.

Program Windows PowerShell uruchamiający plik KeepDisplayAwake.ps1 ze ścieżką wykonywalną Notatnika podaną jako AppPath
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ę.

Otwarty Notatnik obok konsoli PowerShell, na której nadal działa polecenie KeepDisplayAwake.ps1
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 .

Ustawienia ekranu blokady systemu Windows 10 z otwartym oknem dialogowym Ustawienia wygaszacza ekranu i wygaszaczem ekranu ustawionym na Brak
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.

Zostaw komentarz

Konwertuj zdjęcia na obrazy, szkice i kreskówki za pomocą FotoSketcher

Konwertuj zdjęcia na obrazy, szkice i kreskówki za pomocą FotoSketcher

Zamień zdjęcie w obraz, szkic ołówkiem lub komiks dzięki FotoSketcher Studio. Dowiedz się, jak wybrać efekt, dostosować podgląd i zapisać swoją grafikę.

Szczegółowa analiza i identyfikacja plików audio dzięki Audio Identifier

Szczegółowa analiza i identyfikacja plików audio dzięki Audio Identifier

Dowiedz się, co Audio Identifier ujawnia na temat szybkości transmisji, koderów i tagów, jak działa jego starszy proces pracy i które obecne narzędzia sprawdzają pliki lub identyfikują utwory.

Mój indeks zdjęć: program do organizacji zdjęć typu open source dla systemu Windows

Mój indeks zdjęć: program do organizacji zdjęć typu open source dla systemu Windows

My Photo Index to starszy katalog zdjęć dla systemu Windows, umożliwiający tagowanie, ocenianie i przeglądanie lokalnych obrazów. Zapoznaj się z udokumentowanymi funkcjami, ograniczeniami zgodności i aktualizowaną alternatywą.

Zmień atrybuty plików i folderów, daty i godziny za pomocą narzędzia Attribute Changer

Zmień atrybuty plików i folderów, daty i godziny za pomocą narzędzia Attribute Changer

Dowiedz się, jak używać narzędzia Attribute Changer do edytowania atrybutów plików systemu Windows i znaczników czasu, aktualizowania dat zdjęć JPEG EXIF ​​i bezpiecznego podglądu zmian wsadowych.

Jak ustawić inną tapetę na każdym monitorze w systemie Windows 10

Jak ustawić inną tapetę na każdym monitorze w systemie Windows 10

Ustaw osobną tapetę dla każdego monitora systemu Windows 10, zidentyfikuj wyświetlacze, dostosuj dopasowanie obrazu i rozwiąż problemy z brakującymi opcjami monitora.

pViewer: Minimalistyczna przeglądarka obrazów i czytnik mangi i komiksów

pViewer: Minimalistyczna przeglądarka obrazów i czytnik mangi i komiksów

Dowiedz się, do czego służy pViewer, jak działają tryby zdjęć i komiksów, którą edycję systemu Windows pobrać i czym różnią się wersje starsza i przepisana.

NeoDownloader: ustawianie parametrów i zbiorcze pobieranie obrazów ze stron internetowych

NeoDownloader: ustawianie parametrów i zbiorcze pobieranie obrazów ze stron internetowych

Dowiedz się, jak utworzyć projekt NeoDownloader, wybrać zakres indeksowania, ustawić filtry obrazów i miejsce docelowe oraz przeglądać pliki do pobrania w partiach.

Jak przełączyć się na następną tapetę pulpitu za pomocą klawisza skrótu w systemach Windows 7 i 8

Jak przełączyć się na następną tapetę pulpitu za pomocą klawisza skrótu w systemach Windows 7 i 8

Skonfiguruj pokaz slajdów w systemie Windows 7 lub 8, utwórz krótki skrót VBScript i przypisz klawisz skrótu, aby przejść do następnej tapety.

XnConvert: stosuj efekty i konwertuj formaty obrazów partiami

XnConvert: stosuj efekty i konwertuj formaty obrazów partiami

Użyj XnConvert do stosowania efektów, zmiany rozmiaru zdjęć i konwersji formatów obrazów w partiach. Wybierz ustawienia wyjściowe, wyświetl podgląd edycji i chroń swoje oryginały.

PickMeApp: Przenieś programy Windows z zapisanymi ustawieniami

PickMeApp: Przenieś programy Windows z zapisanymi ustawieniami

Przenieś zainstalowane aplikacje systemu Windows na inny komputer za pomocą aplikacji PickMeApp. Dowiedz się, jak działają pakiety TAP, jak przechwycić ustawienia i co może nie zostać przeniesione.