10 Aralık 2018 Pazartesi
Twitter

Windows programının sadece tek bir kopyasını çalıştırma

Windows programının sadece bir kopyasının çalışmasını, başka bir kopyasının çalışmamasını, eğer program çalışıyorsa uyarı vermesini istiyorsanız yapmanız gerekenler...

Bu iş için Mutex sınıfından faydalanabiliriz.

Projenizi oluşturduğunuzu ve Form1 adında bir form eklediğinizi düşünürsek, Program.cs dosyanızın Main metodunu şu şekilde güncellemelisiniz:

[STAThread]
private static void Main()
{
    const string unique = "buraya bir şey yazınız...";

    using (Mutex mtex = new Mutex(true, unique, out bool instanceCountOne))
    {
        if (instanceCountOne)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

            mtex.ReleaseMutex();
        }
        else
        {
            MessageBox.Show("Uygulamanın bir kopyası zaten çalışıyor...");
        }
    }
}

Mutex sınıfı System.Threading namespace i içerisinde yer aldığından 

using System.Threading;

eklemeyi unutmayın.

Programı CTRL+F5 ile çalıştırdığınızda (veya build ettikten sonra exe sini çalıştırdığınızda) form çalışacaktır;

mutex-programin-tek-kopyasi-1

Programı bir kez daha çalıştırdığınızda;

mutex-programin-tek-kopyasi-2

şeklinde bir uyarı ile karşılaşırsınız.

Değerlendirme

Yazım dilinin sadeliği ve anlaşılabilirliği Puan: 4,85 (3 oy)
Yazıdaki kodların kalitesi Puan: 4,67 (3 oy)
İhtiyaca cevap verme Puan: 4,87 (3 oy)
Tavsiye edilebilirlik Puan: 4,85 (3 oy)
Genel değerlendirme Puan: 4,88 (3 oy)
Puanlamalar 5 üzerindendir.
  • Site Yorumlarý
  • Facebook Yorumlarý Facebook Yorumlarý
Yeni yorum yaz Toplam: 1, Onay bekleyen: 0.
  1. ekrem

    bunu nerede değerlendirebilirim diye düşünüyorum... paylaşım için teşekkür ederim hocam.