• 28 Mart 2024 17:17

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

Uygulamanın Tek Örneğinin Çalışmasına Müsaade Etmek

Bazı uygulamalar çalışma prensipleri gereği aynı anda tek örneğinin çalışmasına müsaade eder. Uygulama açık iken başka bir örneği çalıştırılmak istendiğinde yukarıdaki gibi uyarı mesajı verip açılacak olan son örneği iptal eder.

Bu işlem için System.Diagnostics sınıfına ait Process sınıfından yararlanılır. Aşağıdaki kod örneğinde görüldüğü gibi öncelikle Process.GetCurrentProcess().ProcessName kod parçası ile başlatılan uygulamanın işlem adı alınıyor. Process.GetProcessesByName metodu ile de bu isme sahip işlemlerin listesi alınıyor. Eğer bu isimde birden fazla işlem var ise uyarı mesajı verilip return komutu ile işlem iptal edilir ve uygulama sonlandırılır.

            Process[] processesByName = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
            if (processesByName.Length > 1)
            {
                MessageBox.Show("Uygulama zaten çalışıyor.");
                return;
            }

Kodu uygulamanızın Main metodunun içinde başlangıç formunu ekrana göstermeden önce kullanabilirsiniz. Bu şekilde kullanmanız durumunda Main metodunuz aşağıdaki gibi olacaktır.

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Process[] processesByName = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
            if (processesByName.Length > 1)
            {
                MessageBox.Show("Uygulama zaten çalışıyor.");
                return;
            }

            Application.Run(new Form1());
        }

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.