Se você deseja detectar e reagir a algo específico no Windows, a maneira mais eficiente é com o Visualizador de Eventos. Construa um evento que detecte esse problema e termine a tarefa.
Abra o Visualizador de Eventos (eventvwr.msc) e crie uma visualização personalizada.
Para este evento, pode variar muitos níveis, já que o atraso de nível varia. Vamos verificar críticas, erros e informações. Nesse caso, estamos rastreando as fontes dos eventos em si, não seus registros. Clique no botão de opção "Por origem". No menu suspenso, selecione Erro de aplicativo & Suspensão de aplicativo.
Só para estar no lado seguro (se as palavras-chave / fontes não forem eficazes por qualquer motivo), digitaremos três IDs de eventos muito comuns para a falha. Digite 1,1000,1002 no campo de texto ID. (Se você quiser procurar mais IDs de eventos, poderá encontrá-los aqui ) .
Nossas palavras-chave são "Tempo de resposta", pois estamos preocupados com a resposta do nosso aplicativo. Você pode deixar os campos de texto Usuário e Computador como estão.
Captura de configuração de exibição personalizada
Clique em OK. Agora temos um evento que está ciente de quando um programa trava no nosso computador. Agora tudo o que temos a fazer é fazer algo quando isso acontece. Ainda no visualizador de eventos, "Anexar tarefa a esta exibição personalizada ..." No Assistente, vá para Ação. Queremos executar um comando quando esse evento ocorre. Nosso comando é taskkill
, e os argumentos que estão no campo "Adicionar argumentos" são /F /FI "STATUS eq NOT RESPONDING" /FI "WINDOWTITLE ne untitle*"
. Agora você pode terminar o Assistente.
[Lamentavelmente, eu não tenho reputação suficiente para ligar todas as coisas que eu estava indo. É meu primeiro dia; desculpe.]
Agora, quando acionado, essa visualização desativará todos os processos que não estão respondendo. Se você quiser adicionar mais argumentos para taskkill
, eles poderão ser exibidos em cmd com taskkill /?