C# Programın İki Kere Açılmasını Engellemek – Mustafa BÜKÜLMEZ
Mustafa BÜKÜLMEZ 2 Ocak 2020 Okuma süresi: 1dk, 55sn	141
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.
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.");
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.
C Sharp Eğitim SetiC# Proccess sınıfıC# processC# Process İşlemleriC# Programın İki Kere Açılmasını Engellemek
Teşekkürler fakat ben wpf de kullanmak istediğimde bu kodu nereye yazmam gerekiyor?
Mustafa BÜKÜLMEZ	4 ay önce
Program.cs veya AnaForm(ilk açılan form) ‘un load eventi içerisine yazabilirsiniz. Ben Program.cs içerisine yazılmasını tavsiye ederim.
Daha önce bir kaç kere WPF ile çalışmıştım ve kodlarda biraz değişiklikler vardı. Bu yüzden tam olarak bende bilemiyorum.
10 Oca, 2018 23844