C# Run Kill Process (Exception EventLog)

Bu yazımda sizlere çalışan bir processi kill(sonlandırmayı) anlatacağım. Çalışan bir processi kill ederseniz bu processi çalıştıran birden fazla açık dosya varsa (Excel gibi) tüm çalışan processleri kapatır.

[code lang=”c”]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;

namespace ConsoleApplication1
{
class Program
{

public static void HataMesajiYaz(Exception HataMesaji)
{

string strLogMessage = "\nMessage : " + HataMesaji.Message +

"\nSource : " + HataMesaji.Source +

"\nTarget Site : " + HataMesaji.TargetSite +

"\nStack Trace : " + HataMesaji.StackTrace;

string logName = "BenimProjem";

// EventLogda Hata Mesajının Nereye yazılacağını Belirliyoruz. BenimProjem adında bir Log adı olmadığı için açmamız gerekiyor. Bunu da aşağıda anlatacağım.

if (!EventLog.SourceExists(logName))
{
EventLog.CreateEventSource(logName, logName);
}

EventLog log = new EventLog();
//Nereye yazılacak? Event Logda BenimProjem Event log dosyasına yazılacak.
log.Source = logName;

// Hata Mesajını alıyoruz.
strLogMessage += "\r\n\r\n————————–\r\n\r\n" + HataMesaji.ToString();

// Hata mesajını log dosyasına yazdırıyoruz.
log.WriteEntry(strLogMessage, EventLogEntryType.Error, 65534);
}

public void runProcess(string processname)
{
Process p = Process.Start(processname);
}

public void killProcess(string processname)
{

foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
Console.WriteLine(p.ProcessName);
if (p.ProcessName.Equals(processname))
p.Kill();
}
}
static void Main(string[] args)
{
try
{
Program p = new Program();
string username = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
Console.WriteLine(username);
// p.runProcess("notepad");
p.killProcess("notepad");
}
catch (Exception ex)
{
HataMesajiYaz(Exception ex)
}
}
}
}

« »