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.

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)
            }
        }
    }
}

Yazar : Emrah Kahraman

Bilgisayar Mühendisi

“C# Run Kill Process (Exception EventLog)” için 1 Yorum

  1. FATİH dedi ki:

    process kill metodu açık olan excel sayfalarını da kapatıyor. Yani kullanıcı başka bir excel sayfasıyla çalışıyorsa onu da kapatıyor. Bana sadece benim aktardığım sayfayı kapatacak bişey lazım

C# Run Kill Process (Exception EventLog) Yazısı için Yorum Yapabilirsiniz

Kan Bağışı
Sponsor
Alexa
Hakkımda
Bağlantılar