Existe alguma maneira de parar um aplicativo do Windows diferente do Gerenciador de tarefas

0

Eu tenho um aplicativo do Windows .Net que executa continuamente o processamento de dados. Eu recebo problemas ocasionais porque o usuário inadvertidamente tem 2 instâncias em execução. Eu adicionei código para impedir que uma segunda instância seja executada. Eu costumo pará-lo sozinho ysing Task Manager > Fim do processo. Existe uma maneira melhor de terminar o programa do que isso? De preferência, algo que posso colocar no Agendador de Tarefas para executar todas as noites.

    
por Steve Staple 03.03.2015 / 12:07

2 respostas

1

Há um par de programas de linha de comando pouco conhecidos que fazem o que o Gerenciador de Tarefas faz, tasklist e taskkill . Use a opção /im para especificar um nome de processo.

    
por 03.03.2015 / 23:36
1

Você identificou várias coisas relacionadas ao gerenciamento de processos que gostaria que seu aplicativo fosse capaz de realizar. Você também mencionou que deseja que isso seja altamente automatizado (você está querendo matá-lo automaticamente em um intervalo regular). Para fazer isso, você usará uma 'Tarefa agendada'.

Eu sugiro que você realmente use o 'Agendador de Tarefas' melhor para começar. Você pode configurá-lo para executar exatamente como você gosta. Então, em vez de invocar seu aplicativo, basta invocar a 'Tarefa agendada'. Isso lhe dará muitas vantagens. Não menos do que sendo uma GUI totalmente implementada, fácil o suficiente para qualquer administrador de sistema configurar suas necessidades exatas (e elas já estão acostumadas com isso, muito provavelmente).

Mesmo a parte de instância única do seu aplicativo poderia ter sido feita apenas com 'Tarefas agendadas' (mas usar os dois caminhos pode ser melhor; para ter certeza, não é possível fazer uma cópia da tarefa e ignorá-la) .

Usandoomenususpensocirculado,vocêpodeselecionarcomoseuaplicativoreciclaseusprocessos.NãoretratadoéumaopçãoparaStopthenewInstance,queéoquevocêestáfazendoagoracomoseucódigo.Adiferençaéqueessaconfiguraçãoéespecíficaparaatarefa;nãoaaplicaçãointeira(quepodenãoserboaosuficiente).

Sevocêtivermarcadoacaixadeseleção"Permitir que a tarefa seja executada sob demanda", poderá executar sua tarefa a partir da linha de comando da seguinte forma:

schtasks /Run /TN "task name"

Se você quiser terminá-lo, use:

schtasks /End /TN "task name"

Após a configuração, uma tarefa agendada pode ser exportada para outros sistemas com facilidade também. Right click na tarefa e selecione Export... quando você está trabalhando. Este arquivo pode ser adicionado posteriormente a qualquer sistema usando a Importação. . comando:

schtasks /Create [/S <system> [/U <username> [/P [<password>]]]] /XML <xmlfile> /TN <taskname> 

Verificamos apenas algumas das opções disponíveis

    
por 03.03.2015 / 18:34