O anda çalışmakta olan uygulamaların durumlarını gözleyen bir service yazmamız gerektiğinde, gözlediğimiz uygulamanın kullanıcıya yanıt verip-vermediğini bulabilmemiz gerekir.
Bunu .Net Framework‘teki Process sınıfının üyeleri ile kolaylıkla yapabiliriz.
Process Sınıfı
Process sınıfı System.Diagnostics namespace‘i içerisinde yeralır. Process sınıfı birçok static ve instance üyeye sahiptir. Bu üyeler sayesinde, lokal bilgisayardaki veya uzak bilgisayardaki herhangi bir uygulamaya müdahele edebilirsiniz. Ayrıca Process sınıfı ilgili uygulamanın “çalıştığını” veya “yanıt vermiyor” durumuna düştüğünü de belirleyebilir.
Bu özellik, uygulamaları monitör eden bir service geliştirecekseniz çok kullanışlıdır.
Bu yazıda, basit bir console uygulaması ile bilgisayardaki “yanıt veren” ve “yanıt vermeyen” uygulamaları listeleyeceğiz.
Öncelikle System.Diagnostics namespace‘ini kod’umuzun using kısmına ekleyelim;
using System.Diagnostics;</pre>
Bilgisayarda o anda çalışan uygulamaları Process sınıfının GetProcesses() method’undan Process dizisi olarak alabiliriz;
Process[] p = Process.GetProcesses();
Basit bir döngü ile o anda çalışmakta olan process‘ler arasında dönebiliriz. Sonra tek yapmamız gereken, Process sınıfının statik Responding property’sine bakmak;
if (p.Responding) Console.WriteLine(" yanıt veriyor."); else Console.WriteLine(" yanıt VERMİYOR!");
Uygulamanın kodlarını toparlarsak;
Process[] processes = Process.GetProcesses(); foreach (Process p in processes) { Console.Write(p.ProcessName); if (p.Responding) Console.WriteLine(" yanıt veriyor."); else Console.WriteLine(" yanıt VERMİYOR!"); }
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484