Getprocesses | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar getprocesses

Not Responding durumundaki Process’leri bulmak

05 July 2010 1 yorum

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;

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!");
}