Merhaba arkadaşlar,
C# üzerinde Görev Yöneticisi işlemlerini ve Process ile işlem başlatmayı inceleceğiz. İlk olarak Görev yöneticisindeki gibi, mevcut çalışan uygulamaların listesini veren bir uygulamanın kodlarını incelyelim. Beraber kodlayalım.
Bilgisayarda çalışan uygulamaları listelemek istiyorsak içe aktarmamız gereken bir kütüphane var.
using System.Diagnostics;
Bu kütüphane sayesinde çalışan birimleri teşhis edebileceğiz. Herhangi uygulama başlatmak ve sonlandırmak v.b. amaçlar için de bu kütüphaneyi kullanabiliriz. Biz bu uygulama için Görev Yöneticisinde bulunan işlemlerin bir listesini almak için ilerleyeceğiz, bunun için arka planda çalışan uygulamaların listesini getiren bir kod parçası yazmamız gerekiyor ve bu aktif programların listesini tutabileceğimiz iki adet ListView eklememiz gerekiyor formumuza 2 adet “ListView” ekledikten sonra yazmamız gereken bu kod parçası aşağıdaki gibi olacak;
foreach (Process p in Proces.GetProcesses(".")) { if (p.MainWindowTitle.Length > 0)<i>//Başlat Çubuğundaki Uygulamalar Alınır</i> { <span class="Apple-style-span">ListViewItem </span>item = new <span class="Apple-style-span">ListViewItem</span>(); item.Text = p.ProcessName.ToString(); item.SubItems.Add(p.MainWindowTitle.ToString());//İsimleri ListView için eklenir listView1.Items.Add(item); } else<span class="Apple-style-span"> /<i>/Başlat çubuğunda olmayan uygulamalar alınır</i></span> { <span class="Apple-style-span">ListViewItem </span>item = new <span class="Apple-style-span">ListViewItem</span>(); item.Text = p.ProcessName.ToString(); item.SubItems.Add(p.SessionId.ToString()); item.SubItems.Add(p.Id.ToString()); listView2.Items.Add(item); //Aynı işlem bunun için tekrarlanır. } }
Yukarıdaki kod parçasını yazdığımızda ve çalıştırdığımızda görüntü şu şekilde olacaktır.
Sizde görüntü bu şekilde olmayabilir, eğer olmasını istiyorsanız , ListView objesinin Properties kısmındaki View kısmını “List” olarak değiştirmeniz gerektirmektedir.
Görev yöneticisindeki gibi bir listelemeyi başardık , peki “İşlemi Sonlandır” butonu yapmayı deneyecek olsak nasıl olurdu?
Bir buton ekleyip deneyelim. Eklediğimiz butonun içine aşağıdaki kodu yazdığımızda işlemi sonlandır butonumuz çalışır duruma gelecektir.
Process[] prs = Process.GetProcesses(); if (listView1.SelectedIndices.Count>0) { foreach (Process pr in prs) { if (pr.ProcessName == listView1.SelectedItems[0].Text) { pr.Kill(); } } } else if(listView2.SelectedIndices.Count>0) { foreach (Process pr in prs) { if (pr.ProcessName == listView2.SelectedItems[0].Text) { pr.Kill(); } } } else { MessageBox.Show("Herhangi işlem seçilmedi!"); }
Yukarıda 3 adet if şartımız var , bu şartlar listView1 veya listView2 den hangisi seçili ise ona göre çalışıyor ve gerekli seçilen uygulamayı durdurma işlemini yapıyor.
Projenin Kaynak kodlarına buradan ulaşabilirsiniz.
Eğer yapamadığınız, anlamadığınız , eksik kalan yerler varsa bana “[email protected]” adresinden veya yorumlar aracılığı ile ulaşabilirsiniz!
Teşekkürler!