2016-04-21 1 views
0

J'ai un programme de console pour exécuter un lot quotidien. J'ai une interface utilisateur que je peux utiliser pour modifier les paramètres dans une base de données que le programme console utilise.C# Pourquoi ne puis-je pas supprimer par programmation un programme de console démarré dans Task Scheduler?

Je pensais que ce serait génial de pouvoir arrêter et démarrer ce programme à partir de l'interface utilisateur et je peux le faire.

Cependant, j'ai le programme de console configuré pour démarrer avant le jour de travail en utilisant le planificateur de tâches au cas où la machine devrait être redémarré - au moins je sais que le programme sera en cours d'exécution au début de la journée.

Cependant, je ne peux pas le tuer lorsqu'il a été démarré par le Planificateur de tâches. Obtenez "Accès refusé".

Pourquoi? Et comment puis-je résoudre cela?

+0

Execute avec des droits d'administrateur? –

+0

Pouvez-vous tuer manuellement le processus à partir du 'Task Manager'? Est-ce qu'un tel message est toujours apparu? –

+0

Ouais - peut le tuer en utilisant le gestionnaire de tâches. Aucun problème. –

Répondre

0

Essayez d'utiliser la méthode suivante:

private void KillProcessByProcessName(string strProcessName) 
{ 
    foreach (Process p in System.Diagnostics.Process.GetProcessesByName(strProcessName)) 
     p.Kill(); 
} 


par exemple:

private void btnProcessKiller_Click(object sender, EventArgs e) 
{ 
    KillProcessByProcessName("winword"); 
} 
+0

C'est ce que j'utilise. Fonctionne très bien si je démarre manuellement le processus à tuer, mais ne pas tuer le même processus si je le lance en utilisant le planificateur de tâches. –