Merhaba dostlar.
Bir masaüstü uygulaması geliştirdiniz. Yalnız bu uygulamadan, aynı anda birden fazla çalıştırılamamasını istiyorsunuz. İşte şimdi, böyle bir sorunun çözümüne bakalım.
Biliyorsunuz ki, masaüstünde çalışan her uygulama (açık programlar, servisler vs) process olarak adlandırılırlar. Task Manager'da "Process" sekmesinde bu uygulamaları görmeniz mümkün.
Bizim istediğimiz şey ise şu, uygulamanızı çalıştırdınız; bu uygulama açıkken aynı uygulamayı tekrar çalıştırmak istediğinizde, ilk açtığınız programı kapatacak. Böylece uygulamanızdan birim zamanda, yalnızca bir adet çalışıyor olacak.
İşte çözüm; öncelikle System.Diagnostics namespace'ini kodunuza ekleyin, sonra da Main() metodunuza, ya da Ana Formunuzun Load olayına aşağıdaki kodu yazın:
Process[] workPr = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName );
foreach (Process pro in workPr)
{
if (Process.GetCurrentProcess().Id != pro.Id)
{
pro.Kill();
}
}
Not: Bu kodu test etmek için, visual studio'dan debug etmek yerine, uygulamayı .exe dosyasından çalıştırın.
Kendinize iyi bakın.
5eeb7c16-3fad-42e3-8f2e-696e0a7ee81d|5|4.8