Process sınıfını kullanarak neler yapabiliriz

Bu makalemizde Process sınıfını kullanarak ne gibi işlemler yapabiliriz bunu detaylı örnekler ile anlatmaya çalışacağız.

Process sınıfını kullanarak neler yapabiliriz

Gerçekleştireceğimiz örnekler basitten daha işlevsel ve kapsamlı örneklere doğru gidecek şekilde hazırlanacak. Örneğimizi konsol uygulamasında gerçekleştireceğiz.

Process sınıfı ile gerçekleştireceğimiz ilk işlem static tek parametreli overload edilmiş Start metodunu kullanarak  klasör, dosya açma ve web adreslerini tarayıcılarda bu metod ile nasıl açacağımızı göreceğiz.

Process sınıfını kullanabilmek için System.Diagnostics namespace’ini uygulamanıza dahil etmelisiniz.

Dizini Açma

Şimdi üstte bahsettiğimiz Start metodunu kullanarak C:\ dizinini Windows Gezgini ile açalım.

Dosyayı Açma

Bu örneğimizde ise example.txt dosyasını üstteki aynı overload edilmiş static Start metodu kullanarak işlemi gerçekleştireceğiz. alttaki koddada göreceğiniz üzere example.txt adlı dosyayı açma işlemini gerçekletireceğiz sadece example.txt yazarak herhangi bir yol belirtmediğimiz için Konsol uygulamamızın bin\Debug(Debug varsayılan Configuration’dır farklı bir configuration seçili ise ilgili klasörden devam edebilirsiniz.) exe uzantısının bulunduğu yolda arayacaktır eğer example.txt adlı bir dosya var ise açacak yoksa hata verecektir example.txt yerine C:\example.txt gibi yolu kesin olarakda belirtebilirsiniz.

Not: Üstteki txt uzantılı dosya için sisteminizde hangi uygulama varsayılan olarak ayarlandı ise o uygulama ile açılacaktır o yüzden açılan uygulama sistemden sisteme farklılık gösterebilir. Belirtmiş olduğunuz dosyanın hangi uygulama ile açılacağı sonraki örneklerimizde göreceksiniz.

Web Sitesini Açma

Üstteki işlemlerden sonra aynı metodu kullanarak bir web sitesini açma işlemini gerçekleştireceğiz dosyayı açma kısmında düştüğümüz not’da olduğu gibi açılacak olan site sistemde varsayılan olan tarayıcı ile açılacaktır.

Dosyası Microsoft Word Dosyası ile Açma

Gears.docx adlı dosyayı Microsoft Word uygulaması ile açacağız. Eğer farklı bir ugyulama ile açmak isterseniz WINWORD.EXE yerine açmak istediğiniz uygulamayı girin. Microsoft Excel uygulaması ile açmak için EXCEL.EXE veya PowerPoint uygulaması için POWERPNT.EXE dosya adını parametre olarak geçebilirsiniz.

İşte şimdi ProcessStartInfo adındaki farklı bir sınıfı daha kodumuza dahil edip dosyayı açma işlemine hangi uygulama ile dosyayı açacağız aksiyonu ile kodlamaya devam edeceğiz.

Özellikler

Bir program başlatırken nasıl başlayacak, verilecek parametreler ve nasıl açılacağı gibi v.b. kullanılacak özelliklerdir.

ProcessStartInfo: Özellikle uygulamanın nasıl başlayacağı ile ilgili ayarları saklamaktadır.

FileName: Program ve dosya çalıştırmak istiyorsanız. "WINWORD.EXE" gibi sistemin Path’ine tanımlı olduğu için direk bu şekilde dosya adını yazarak yada dosyanın bulunduğu yol ile beraber dosya adını girerek uygulamayı çalıştırabilirsiniz. Bir dosyayı açmak için ise aynı şekilde dosya yolu ile beraber dosya adını yazmalısınız..

Arguments: Argümanları depolar, -flag’ler veya dosya adı gibi. String tipte bir özelliktir.

CreateNoWindow: Bir programı pencere oluşturmadan yada açmadan sessizce arka planda işlemi halletmek için kullanabilirsiniz.

WindowStyle: Pencereleri gizlemek için kullanılacak bir enum özelliğidir. Gizlemek için ProcessWindowStyle.Hidden enum değeri kullanılmaktadır.

UserName, WorkingDirectory, Domain:Bunlar işletim sistemine özgü özelliklerdir—Daha karmaşık durumlar için kullanılmaktadır.

Metodlar

Kill

Kill metodu ile işlemi sonlandırabiliriz şimdi ufak bir örnek ile Notepad uygulaması yani Not defteri uygulamasını açacağız ve 2 saniye sonra kill metodu ile kapatacağız.

GetProcesses

Sistemde o an çalışan işlemlerin tümü bu metod ile array olarak dönderilmektedir.

Çıktı

Toplamda 7 çalışan işlemimiz varmış ve bu işlemlere ait process Id’ler konsol’a bastırıldı.

GetProcessesByName

İşlem adını girerek açık olan uygulamanın işlemlerine erişebilirsiniz. Bu metod ile ilgili yapacağımız örnekte açık olan chrome uygulamasının işlemlerine erişmeye çalışacağız ve her 5 saniyede bir konsola kaç uygulamamın çalıştığı bastırılacak.

Çıktı

Chrome eklentiler yüzünden baya işlem çalıştırmakta arkada 23 chrome işlemi çalışıyor denmesine rağmen tek bir chrome penceresi ve bir sayfa açık olmasına rağmen 23 işlem olduğunu söylüyor eklenti sayısına göre arkada çalışan işlem sayısı değişiklik gösterecektir. Açık olan tek chrome penceresini kapatmama rağmen sadece 22’ye düştü herhangi bir chrome pencerem açık değil ve değer 22 olarak kaldı sağ altta sistem çubuğundan chrome’a sağ tuş çıkış dediğimde chrome’a ait işlem sayısı sıfıra indi. Ayrıca chrome çok-işlemli model mantığı ile çalıştığından aynı anda birden fazla işlem çalıştırabilmektedir. Her açtığınız sekme içinde ayrı bir process açtığını göreceksiniz.

Not: Görev yöneticisinden baktığınızda chrome.exe olarak yer alan işlem adı için processName metod değişkenine chrome olarak geçtik sizde bu metodu kullanırken exe uzantısı olmadan kullanma dikkat ediniz.

GetProcessById

İşlev bir üstteki GetProcessByName ile aynı tek farkı processAdı yerine processId değerini alıyor parametre olarak alternatif olarak kullanabileceğiniz metod olabilir. Tek farkı bu olduğundan örnek yapma gereksinimi duymadım.

Kodlu günler geçirmeniz dileğiyle.

Process sınıfını kullanarak neler yapabiliriz
5 (100%) 1 oy

Murat ÖNER

1989 yılında Kocaelinin Dilovası ilçesinde doğdum ilkokul ve lise eğitimimi Kocaeli’de aldım, önlisans üniversite eğitimimi Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu’nda bilgisayar programcılığı bölümünde yaptım. Üniversite dönemi boyunca Microsoft'un student partner projesinde yer aldım ve diğer student partner öğrencileri ile birçok farklı projede yer aldım. Üniversite eğitimi tamamlandıktan sonra staj yapmış olduğum Ries Technologies şirketinde yazılım geliştirici ve web designer olarak görev aldım ardından Gen Yazılım firmasında ERP ve HBYS sistemleri ile ilgili yazılım geliştirmeye devam ettim. Şuan aktif olarak mobil, web ve masaüstü uygulamalar geliştirmeye devam etmekteyim.

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. carebaba dedi ki:

    nice information read it must.thank you for share it

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir