2016-04-21 21 views
0

Ich habe ein Konsolenprogramm, um einen täglichen Stapel zu laufen. Ich habe eine Benutzeroberfläche, die ich verwenden kann, um Parameter in einer Datenbank zu ändern, die das Konsolenprogramm verwendet.C# Warum kann ich ein im Taskplaner gestartetes Konsolenprogramm nicht programmgesteuert beenden?

Ich dachte, es wäre toll, in der Lage zu sein, dieses Programm von der Benutzeroberfläche aus zu stoppen und zu starten, und ich kann das tun.

Allerdings habe ich das Konsolenprogramm so eingestellt, dass es vor dem Arbeitstag mit dem Taskplaner startet, falls der Rechner neu gestartet werden sollte - zumindest weiß ich, dass das Programm ausgeführt wird, wenn der Tag beginnt.

Allerdings kann ich es nicht töten, wenn es von Taskplaner gestartet wurde. Get "Zugriff verweigert".

Warum? Und wie kann ich das lösen?

+0

mit Admin-Rechten ausführen? –

+0

Können Sie den Prozess manuell aus dem 'Task Manager' beenden? Ist noch so eine Nachricht erschienen? –

+0

Ja - kann es mit Task-Manager töten. Kein Problem. –

Antwort

0

Versuchen Sie folgende Methode:

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


z:

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

Das ist was ich benutze. Funktioniert gut, wenn ich den Prozess manuell starten, um getötet zu werden, aber den genau gleichen Prozess nicht töten werde, wenn ich ihn mit dem Taskplaner starte. –