Sayfalar

24 Eylül 2017

IF ELSE-IF ve SWITCH CASE Kullanımı ile Windows Uygulama(Process) İşlemleri

IF ELSE-IF ve SWITCH CASE Kullanımı ile Windows Uygulama(Process) İşlemleri

Visual C#'da Windows Uygulama(Process) işlemlerini IF ELSE-IF ve SWITCH CASE metotlarını kullanarak örnekli anlatacağım. SWITCH-CASE yapısı, çok durumlu dallanma ifadelerinde IF-ELSE blokları yerine tercihen kullanılırlar. Performans olarak da SWITCH-CASE daha hızlı çalışmaktadır.

Switch-case ile yapılabilecek tüm işlemler if-else merdiveni ile de yapılabilmektedir. Fakat kod okunabilirliğini arttırdığı için birçok programcı switch-case yapısını karmaşık if-else blokları yerine kullanmaktadır.

Switch-case yapısının çalışma mantığı şu şekildedir; Öncelikle Switch parantezi içerisindeki ifadenin değeri hesaplanır. Hesaplanan değerle eşleşen Case ifadesi bulunursa, o bloktaki kodlar çalıştırılır. Eğer hiçbir Case blokuyla eşleşme sağlanmazsa Default blokundaki kodlar çalıştırılır. Break deyimi her Case blokundan sonra mutlaka kullanılmalıdır. Çünkü istenen kod bloku çalıştırılmış olmasına rağmen, Break deyimi kullanılmazsa Switch dışına çıkılmadan aşağıdaki Case bloklarına doğru akış devam eder.

IF-ELSE IF Kullanımını örneklediğim UygulamaAc metodu yazdım ve 3 uygulama için String değerlerini girdim.

        public void UygulamaAc(string uygulama)
        {
            if (uygulama == "Calculator")
            {
                System.Diagnostics.Process.Start("calc");
            }
            else if (uygulama == "TaskManager")
            {
                System.Diagnostics.Process.Start("taskmgr");
            }
            else if (uygulama == "Chrome")
            {
                System.Diagnostics.Process.Start("chrome");
            }
        } 

Şimdi aynı metodu Switch-Case kullanarak yapalım

     public static void UygulamaAc(string uygulama)  
     {  
       switch (uygulama)  
       {  
         case "Calculator":  
           System.Diagnostics.Process.Start("calc");  
           break;
  
         case "TaskManager":  
           System.Diagnostics.Process.Start("taskmgr");  
           break;
  
         case "Chrome":  
           System.Diagnostics.Process.Start("chrome");  
           break;
  
         default:  
           break;  
       }  
     }  

Windows işlemleri için örnekleme yapacak olursak, İlk olarak Windows’da Uygulama(Application) açmayı yapalım;

 using System.Diagnostics; //Bunu Ekleyiniz  
 namespace Framework  
 {  
   public class WindowsProcess  
   {  
     //Windows’da Uygulama(Application) Açmak  
     public void UygulamaAc()  
     {  
       //Yöntem 1  
       System.Diagnostics.Process.Start("calc"); 
 

       //Yöntem 2  
       System.Diagnostics.Process.Start(@"C:\Program Files\CCleaner\CCleaner64.exe");  


       //Yöntem 3  
       string uygulamapath = @"C:\Program Files\CCleaner\CCleaner64.exe";
       System.Diagnostics.Process processWin = new System.Diagnostics.Process();
       processWin.StartInfo.FileName = uygulamapath;
       processWin.Start(); 
     }  
   }

Aşağıda ise Uygulama Açma için genel metot yazdım diğer Class'lar da da kullanabilmek için.

     //Uygulama Açma Genel Metodu, Diğer Metotlarda Kullanmak için  
     public void ProcessRun(string ProcessPath)  
     {  
       string uygulamapath = @""+ ProcessPath +"";  
       System.Diagnostics.Process processWin = new System.Diagnostics.Process();  
       processWin.StartInfo.FileName = uygulamapath;  
       processWin.Start();  
     }  
      
     //Başka Metot içinde ProcessRun Çağırırken  
     ProcessRun("C:\Program Files\CCleaner\CCleaner64.exe");  

İkinci olarak Windows’da Uygulama KILL Etmek için aşağıdaki yöntemleri kullanabilirsiniz;

     // Uygulama Kill Etmek 1  
     public void AppKill()  
     {  
       foreach (Process Proc in Process.GetProcesses())  
         if (Proc.ProcessName.Equals("calc"))  
           Proc.Kill();  
     }

     // Uygulama Kill Etmek 2  
     public void AppKill()  
     {  
       foreach (Process Proc in Process.GetProcessesByName("calc"))  
         Proc.Kill();  
     }  

Burak AVCI