Como manter a tela ativa enquanto um aplicativo está em execução no Windows 10

Para manter a tela ativa apenas enquanto um aplicativo específico estiver em execução, use um pequeno script em PowerShell que solicita ao Windows que mantenha a tela ligada, inicia o aplicativo, aguarda a finalização do processo e, em seguida, limpa a solicitação. Isso evita a necessidade de alterar o plano de energia ativo ou adivinhar qual valor de tempo limite restaurar. O exemplo também solicita ao Windows que permaneça ativo, já que o modo de suspensão automática desligaria a tela.

O que o invólucro faz

O Windows oferece recursos SetThreadExecutionStatepara aplicativos que precisam evitar o desligamento da tela quando ociosos. O ES_DISPLAY_REQUIREDscript solicita que a tela seja ligada, ES_SYSTEM_REQUIREDimpede que o Windows entre em modo de suspensão e ES_CONTINUOUSmantém a solicitação em espera até que seja liberada. O script aguarda o processo escolhido e, em seguida, limpa os sinalizadores em finally. Consulte a documentação da API da Microsoft .

O wrapper não altera os tempos limite do plano de energia e sua solicitação termina com o script. Ele não pode substituir o modo de suspensão manual, a tampa do laptop fechada ou as proteções de bateria crítica, e não desativa o protetor de tela. Manter o Windows ativo consome mais energia, especialmente quando se usa a bateria.

1. Encontre o executável do aplicativo.

Use o nome real do aplicativo .exe, não um atalho do menu Iniciar ou um documento. O exemplo usa o Bloco de Notas em C:\Windows\System32\notepad.exe. Para outro programa, abra as Propriedades do atalho e copie o Destino ; confirme se ele aponta para o executável do aplicativo.

Para aplicativos de instância única, feche primeiro as instâncias existentes. O wrapper aguarda apenas o processo que inicia, portanto, um inicializador que passa o controle para uma janela mais antiga pode ser encerrado prematuramente. Caso isso aconteça, utilize o executável de longa duração do aplicativo.

2. Crie e salve o script do PowerShell.

Abra o Bloco de Notas e cole este script. Ele inicia o aplicativo no caminho que você fornecer, aguarda o encerramento do processo e, em seguida, limpa a solicitação do Windows, mesmo que a inicialização falhe.

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)
}

Escolha Arquivo > Salvar como , salve em um local simples, como C:\Scripts\KeepDisplayAwake.ps1, e defina o tipo de arquivo como Todos os arquivos (*.*) . Inclua a .ps1extensão manualmente; caso contrário, o Bloco de Notas poderá adicionar .txt. Use UTF-8 se a caixa de diálogo oferecer uma opção de codificação.

Abra a caixa de diálogo "Salvar como" do Bloco de Notas com o arquivo KeepDisplayAwake.ps1 no campo de nome do arquivo e selecione "Todos os arquivos".
Salve o arquivo auxiliar com a extensão .ps1 e selecione "Todos os arquivos" para que o Bloco de Notas não adicione a extensão .txt.

3. Execute o aplicativo por meio do wrapper.

Abra a caixa de diálogo Executar pressionando a tecla Windows + R ou abra um Prompt de Comando normal e digite este comando. Altere o local do script e o caminho do executável para corresponder ao seu computador.

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

-ExecutionPolicy BypassAfeta apenas este processo do PowerShell; não altera permanentemente a política da máquina. As políticas da empresa ou da escola ainda podem bloquear scripts. Execute apenas códigos que você entenda e siga as regras do seu administrador caso o script seja bloqueado.

Windows PowerShell executando KeepDisplayAwake.ps1 com o caminho do executável do Bloco de Notas fornecido como AppPath
Passe o caminho completo do executável após -AppPath; coloque entre aspas os caminhos que contêm espaços.

4. Confirme se a solicitação foi concluída com o aplicativo.

O PowerShell permanece ocupado enquanto o processo iniciado estiver aberto. Feche o aplicativo para retornar ao prompt; o finallybloco limpa a solicitação. Se você fechar o PowerShell primeiro, a solicitação será encerrada, embora o aplicativo possa permanecer aberto.

Faça o teste deixando o aplicativo aberto além do intervalo normal de desligamento da tela. Se a tela desligar, confirme se o console ainda está ocupado, se o caminho aponta para o executável de longa duração e se nenhuma política de suspensão manual ou gerenciada está sobrescrevendo-o.

O Bloco de Notas está aberto ao lado de um console do PowerShell que ainda executa o comando KeepDisplayAwake.ps1.
O auxiliar permanece ativo ao lado do aplicativo; fechar o aplicativo retorna o controle para o PowerShell.

Verifique as configurações do protetor de tela separadamente.

A solicitação de estado de execução não interrompe o protetor de tela. Abra Configurações > Personalização > Tela de bloqueio e selecione Configurações do protetor de tela . Defina como (Nenhum) ou ajuste o tempo de espera, se necessário; mantenha a opção de retomar o login quando desejar que o computador bloqueie após um período de inatividade. Consulte as instruções da Microsoft sobre o protetor de tela .

Configurações da tela de bloqueio do Windows 10 com a caixa de diálogo Configurações do Protetor de Tela aberta e o protetor de tela definido como Nenhum.
O protetor de tela possui sua própria configuração e pode permanecer visível mesmo enquanto uma solicitação de exibição estiver ativa.

Por que não usar o antigo arquivo em lote que altera o tempo limite?

powercfg /change monitor-timeout-acAltera o tempo limite de exibição conectado à tomada do esquema de energia ativo em minutos; não se trata de uma solicitação temporária do aplicativo. Restaurar um valor estimado pode sobrescrever a configuração real do usuário, e um comando exclusivo para CA não abrange o modo de bateria. A Microsoft documenta as opções de CA e CC em sua referência powercfg . Use o wrapper para uma sessão de aplicativo e as configurações de energia do Windows para uma alteração permanente do tempo limite.

Solução de problemas

  • O aplicativo abre, mas a tela continua em modo de espera: verifique se a janela do PowerShell ainda está ocupada pelo script. Se ela retornar imediatamente ao prompt, o executável pode ser um iniciador que se encerra após encaminhar a solicitação.
  • O PowerShell indica que o caminho do aplicativo está faltando: verifique a ortografia e as aspas em torno de -AppPath. Um caminho com espaços deve permanecer entre aspas.
  • O Windows bloqueia o script: siga a política de execução do dispositivo. Não altere uma política gerenciada nem defina uma política permanente irrestrita apenas para este script.
  • O protetor de tela ainda inicia: ajuste o protetor de tela separadamente usando as configurações de tela de bloqueio acima; a solicitação da API não o desativa.

Deixar um comentário

Como exibir todos os ícones da bandeja do sistema no Windows 10

Como exibir todos os ícones da bandeja do sistema no Windows 10

Mantenha os ícones dos aplicativos fora da área de opções ocultas no Windows 10. Ative a opção "Todos os ícones" e, se ainda faltar algum, gerencie os ícones do sistema separadamente.

Como atualizar as credenciais de login de rede no Windows 10

Como atualizar as credenciais de login de rede no Windows 10

Altere o nome de usuário ou a senha salva que o Windows usa para uma unidade mapeada ou pasta compartilhada por meio do Gerenciador de Credenciais e, em seguida, reconecte-se para verificar o acesso.

Como instalar um complemento do Minecraft no Windows 10

Como instalar um complemento do Minecraft no Windows 10

Importe um arquivo .mcpack ou .mcaddon do Bedrock no Windows 10, ative-o para um mundo novo ou existente e evite confundir complementos com mods Java.

Como limitar o uso da CPU pelo Microsoft Defender no Windows 10

Como limitar o uso da CPU pelo Microsoft Defender no Windows 10

Defina um limite de CPU mais baixo para a verificação do Defender no PowerShell, trate a exceção de verificação ociosa e verifique quais verificações do Windows 10 essa configuração afeta.

Como alterar o brilho da tela de acordo com a hora do dia no Windows 10

Como alterar o brilho da tela de acordo com a hora do dia no Windows 10

Defina os níveis de brilho diurno e noturno no Windows 10 com o ClickMonitorDDC 7.2 e saiba mais sobre os limites do DDC/CI e a alternativa Luz Noturna.

Como corrigir o erro “Não foi possível configurar o ponto de acesso móvel” no Windows 10

Como corrigir o erro “Não foi possível configurar o ponto de acesso móvel” no Windows 10

Restaure o ponto de acesso do Windows 10 verificando a fonte de internet e o adaptador sem fio, reparando o driver e deixando a opção "Redefinição de rede" por último.

Como ajustar o equilíbrio entre os canais esquerdo e direito dos fones de ouvido Bluetooth no Windows 10

Como ajustar o equilíbrio entre os canais esquerdo e direito dos fones de ouvido Bluetooth no Windows 10

Descubra como controlar o balanço entre os canais esquerdo e direito dos fones de ouvido Bluetooth no Windows 10, com uma solução alternativa cautelosa no registro do sistema quando os controles de volume permanecem vinculados.

Como gravar uma imagem de disco em um cartão SD no Windows 10

Como gravar uma imagem de disco em um cartão SD no Windows 10

Aprenda como gravar uma imagem de disco em um cartão SD no Windows 10 com o balenaEtcher, verifique a unidade de destino e confira se o cartão gravado inicializa o sistema.

Como desligar automaticamente o Windows 10 quando estiver ocioso

Como desligar automaticamente o Windows 10 quando estiver ocioso

Configure o gatilho "Em modo ocioso" do Agendador de Tarefas para desligar o Windows 10 com uma janela de cancelamento de um minuto e aprenda como o Windows define o estado ocioso.

Como ativar a visualização em miniatura de imagens RAW no Windows 10

Como ativar a visualização em miniatura de imagens RAW no Windows 10

Instale a extensão gratuita de imagens RAW da Microsoft e ajuste as configurações do Explorador de Arquivos para exibir pré-visualizações de arquivos RAW de câmeras compatíveis no Windows 10.