Ana içeriğe atla

C# Process Uygulaması

Evet uzun bir süreden sonra tekrar buradayım. Bugün Process’lerden bahsediyoruz. Windows üzerinde çalışan uygulamara proses diye bahsediyoruz. Prosesleri şu şekilde takip edebilirsiniz. Task Maneger(Görev Yöneticisi) – View- Select Columns’a girip PID(Process Identifier)’i aktif etmeniz gerekiyor. Bunu aktifleştirdiğinizde Process sekmesinde yeni bir alanın daha aktif olduğunu göreceksiniz. İşte o aktif olan PID numaraları Windows tarafından her uygulamaya eşsiz verilen numaralardır. Herhangi bir uygulama çalıştırıp ya da sonlandırdığınızda programları buradan takip edebilirsiniz.Proseslerin ne olduğu ile ilgili daha tedaylı bilgi için İngizlice-Process ya da Türke-Process e bakabilirsiniz.
Proseslerin ne olduğundan çok kısa olarak bahsettiğimize göre şimdi C# ile olan alakasına geçebiliriz.
Proseslere erişim için System.Diagnostics.Process Sınıfı kullanacağız isterseniz önce bu sınıfı bazı metotları ile birlikte tanıyalım.
Id: Uygulamaya(Process) işletim sistemi tarafından verilen eşsiz numarayı belirten özelliktir.
ProcessName: Uygulama adını belirten özelliktir.
ExitCode: Uygulamanın çıkış kodunu belirten özelliktir. Bu özellik uygulamanın başarılı çalışıp çalışmadığını döndüren metotdur. Eğer 0(sıfır)’dan farklı bir değer dönerse uygulamanın hata ile karşılaşıp kapandığını belirtir.
ExitTime: Uygulamanın çıkış zamanını belirten özelliktir.
Handle: Uygulamaya işletim sistemi tarafından atanan tanıtıcı değeri belirten özelliktir.
MainWindowTitle: Uygulamanın ana pencere başlığını belirten özelliktir.
Threads: Uygulama tarafında oluşturulan iş parçacık listesini döndüren özelliktir.
Start: Yeni bir uygulama başlatmak için kullanılan metotdur.
Kill: Uygulamayı Durdurmak için kullanılan metotdur.
GetCurrentProcess: Aktif uygulamanın özelliklerine göre yeni process nesnesi döndüren metotdur.
GetProcessesById:İşletim sisteminde çalışan uygulamaya numarası ile erişebilmek için kullanılan metotdur.
GetProcesses: İşletim sisteminde çalışan uygulamaların listesini döndüren metotdur.
CloseMainWindow: Uygulamanın ana penceresini kapatmak için kullanılan metotdur.

Metotları daha iyi anlayabilmek için aşağıda ekran görüntüsünü verdiğim örneği inceleyebilirsiniz…


Umarım Process in c# örneği faydalı olur.

Yorumlar

Adsız dedi ki…
Birkan Bey Teşekkür ederim paylaşım için sınav arifesi çok makbule geçti bu konudan faydalanmam.
Adsız dedi ki…
Merhaba Hocam. Yazınız için çok teşekkür ederim. Benim merak ettiğim şey ise Process ler sayesinde o programdaki değişkenlere (sanırım bunlara offset veya pointer deniliyor) hükmedebilir miyiz?

Şimdiden teşekkürler. İyi günler.
Birkan Aydın dedi ki…
Tam olarak değişken değilde, üzerindeki butonlara vs. hükmediliyor olabilmesi lazım. fakat bununla ilgili hiçbir çalışma yapmadım.
Adsız dedi ki…
Merhabalar;
Yazınız güzel benim şöyle bir sorunum var sanırım bunu process çzemeyecek :( Ben ekran kayıt programlarını engellemek isiyoru mesela camtasia. Programım çalışırken alışan uygulamalrı içinde varmı taratıp varsa process kill ile kapatıyorm veya kendi programımı kapatıyorum. Buraya kadar herşey normal ama kullanıcı programın adını değiştirdiğinde hiçbir işe yaramıyor. Ben kullanıcı progamın adını değiştirse dahi programı engellemek veya kendi programımı kapatmak istiyorum. bu process in program aı yerine Class adını öğrenemiyoruz sanırım bunun nasıl yapılabileceği hakkında bir fikriniz varsa gerçekten çok yararlı olacaktır. iyi çalışmalar
Birkan Aydın dedi ki…
belki şöyle bir çözüm yapabilirsin, dosyanın kayıtlı olduğu dizin bellidir. örnek veriyorum c:\camtasia\ekrankayit.exe'dir. ekran kayıt dosyasının boyutu sallıyorum 1,23mb dosya boyutuna göre tarattırıp bulabilirsin ya da process'te çalışan programların yollarını aldırıp-böyle bir seçenek varmı bilmiyorum- boyutlarına baktırabilirsin ve 1,23mb olanı bulursun yanındaki dosylara baktırırsın ekrankayit.exe'ye mi ait -mutlaka dll vs. dosyası olacaktır. onların isimlerini değiştiremez- ona göre sildirirsin. Birazcık yaratıcılığını kullandığın anda sorun çözülecektir. Başarılar dilerim.


Not:Askerde olduğum için mesajlara hemen cevap yazamıyorum ve malesef sana örnek bir çalışma gönderemiyorum :). kusura bakma

Bu blogdaki popüler yayınlar

C# Görüntü işleme

İlk Olarak Burayı Okumalısınız Öncelikle görüntü işleme üzerine olan kodları birebir hepsini ben yazmadım bunun için google da “c# color tracking” diye bir arama gerçekleştirdim ve referans olarak http://www.uguryalcin.de/c/372 adresini belirledim. Konuya geçecek olursak, ilk önce birkaç kütüphane dosyasına ihtiyacınız olacak. örnek projede kütüphaneler mevcut bunlar kendinizi daha da ileri götürmek için. aforge kütüphanesini indirmek isteyebilirsiniz. Ekran görüntüsü. Ben aslına bakarsanız kod anlatma konusunda pek iyi değilim. Örnek projeyi indirin. Kodları silin aralarına bir şeyler eklemeye çalışın ve öğrenin. Şimdi yeni bir soru ile daha karşılaşıyoruz. Aynı anda birkaç görüntü almak istersek ne yapmalıyız. Aslında onunda cevabı basit ama biraz da sizin araştırma yapıp kendi blogunuzda yayınlamanız için onu size bırakıyorum. Yayınlamış olduğunuz yazıyı yorumlardan paylaşırsanız çok mutlu olurum. Sağlıcakla kalın :) using System; using System.Collections.G...

C# pixel, görüntü işleme

İlk olarak Görüntü İşleme ile ilgili olan yazıyı okumanızı tavsiye edilir. http://yzgrafik.ege.edu.tr/~tekrei/dosyalar/sunum/gi.pdf bu dökümanın 25.sayfasındaki formülü kullanarak siyah beyaz bir resim yapalım dedim. Ekran görüntüsü aşağıdaki gibi oldu. Kaynak kodda şu şekilde ya da c# Pixel İşleme using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace pixelIsleme { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Bitmap PixelTara( Bitmap Goruntu) { Bitmap yeniGoruntu = new Bitmap (Goruntu.Width, Goruntu.Height); //Bitmap sınıfımızı oluşturduk. for ( int i = 0; i < Goruntu.Width; i++) //resmi yatay olarak taramak için { for ( int j...

C# İle Ping Atma

Evet arkadaşlar uzun zamandan beri blog’ta bir şeyler paylaşma sıkıntısı yaşıyorum. Bende en iyisi eski çalışmalarımı bir bir dökeyim dedim. Öncelikle size birazdan anlatacağım programın yapım hikayesini anlatayım. Bildiğiniz üzere bir zamana kadar Türk Telekom tek internet sağlayıcısıydı sonra d-smile çıktı, daha sonrada biri.net kendisini gösterdi… Biz internete bağlandığımız zaman bunların üçü de vardı aslında ama bulunduğumuz yer itibari ile –okuduğumuz yer küçük bir kasaba 7300 nüfuslu- Türk Telekom’u seçtik, tabi bir ara keşke bağlatmasaydık da dedik ama artık her şey için çok geçti. İnternetimiz bir geliyor, bir gidiyor sonra hiç gelmiyordu. Uzun telefon görüşmeleri ve biraz tehditten sonra zar zor bir teknik servis gönderebildiler. Tamam hiçbir değişiklik olmamıştı ama en azından bulunduğumuz yerde ki bayii müdürü gibi hata sizden kaynaklanıyor dememişti. Hatlarda parazit mi varmış ne gene düzelmedi fakat gel zaman git zaman internetin kesilmeden bağlı kalma süresi 5-6 saatlere...