C# Programın İki Kere Açılmasını Engellemek

C# Programın İki Kere Açılmasını Engellemek

2 Ocak 2020 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 21
Yaklaşık okuma süresi : 2 DK
C# Çalışan Bir Uygulamanın Sahibini Bulmak? - Process Owner
C# Ping Gönderme Uygulaması Yapalım

Merhaba, yeni yılın ilk C# dersi ile karşınızdayım. Bu ders C# Programın İki Kere Açılmasını Engellemek hakkında olacak. Artık aklıma ekleyecek bir ders gelmediğinden bana gelen sorulardan dersler çıkartıyorum. Bu konu da bir soru olarak gelmişti bu yüzden ders olarak eklemek istedim.

C# Programın İki Kere Açılmasını Engellemek

Bazen kullanıcıların programı iki kere açmasını istemeyiz. Özellikle servis olarak yada servis gibi çalışan projelerimiz için geçerlidir. Üst üste defalarca açılıp sistemde kasma yapmasını yada tekrar tekrar açıldığı için aynı işlemlerin tekrar tekrar yapılıp mükerrer kayıtlar olmasını istemeyiz. Bu nedenle böyle bir işleme ihtiyaç duyarız.

Örneğin bir DB eşitleme servisi,  sms gönderme servisi yada mail gönderme servisi olduğunu var sayalım. Arka arkaya 5 kere açılmış olsun. Bu durumda her proje aynı sorguları 5x çalıştıracağından SQL Server’e fazladan yük bindirmiş olacak. Aynı zamanda bir işlem 5 kere yapılacak. Yani bir sms göndermesini istiyoruz ama 5 servisin her biri bir sms gönderiyor. Bu yüzden aynı sms 5 kere gitmiş olacak. Aynı durum mail gönderme servisi içinde geçerli. Eşitleme servisi için ise mükerrer kayıtlar açılması sorunu yaşarsınız.

Bu işlem için gerekli kodlarımız çok kısa ve forma ilgili namespace ‘i eklemeden vereceğim. Yani namespace ‘i inline olarak ekleyeceğiz.

if(System.Diagnostics.Process.GetProcessesByName("ExeAdi").Lenght > 1)
{
    MessageBox.Show("Program zaten açık.");
    Application.Exit();
}

Gördüğünüz gibi kodlarımız bu kadar kısadır.

GetProcessesByName metodu ile verdiğimiz exe ‘nin kaç kere açık olduğunu alıyoruz. Eğer bir tane varsa sorun yok. Exe’ye çift tıklayıp açmak istediğimizde zaten çalışan bir exe var ise ikinci defa açılmak üzere olan exe bir uyarı verecek ve kapanacak.

İlgili İçerik  C# Linq To XML ile XML Dosyalarla Çalışmak

 


Bu yazımızında sonuna geldik dostlar.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Sağlıcakla ve takipte kalın. 😉

C# Çalışan Bir Uygulamanın Sahibini Bulmak? - Process Owner
C# Ping Gönderme Uygulaması Yapalım