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());
        }
image_pdfimage_print

Yorum yapın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »
%d blogcu bunu beğendi: