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!
Kaynak kodun çalışmıyor. Nasıl yazı yazıyorsun test etmiyor musun?
Kodlarını revize edeceğim diye kendi kodum bozuldu.
Merhaba isim ya da mailini yazmaya cesareti olmayan fakat 6 yıl önce yazdığım yazıyı “acımasızca” eleştiren arkadaşım 🙂
Bilmiyorum fark ettin mi bu yorumu yazdığın yazı 5 yılı geçkin bir süre yazılmış. Hatta bu blog için yazdığım son yazı 3 yılı geçmiş. Bu sürede wp eklentileri hatta wp’in kendisi güncellendi. Bu nedenden dolayı da bazı bileşenler bozuk/hatalı gösteriyor olabilir. Kodları kopyala/yapıştır yapmak yerine mantığını anlayıp, projene uyarlamanı tavsiye ederim yoksa bu gibi aramalar sonucu kopyala/yapıştırcılığa devam edersen kendine bir katkı sağlayamazsın. Tanıdığın ve tanımadığın insanlar hakkında bu tip kesin yargılarda bulunurken kullandığın dile dikkat etmeni de ayrıca “insani” ilişkiler açısından şiddetle öneririm.
İyi Kodlamalar.