C# İf ile Process.Start İşlemini Yapma

Hello

Hectopat
Katılım
2 Temmuz 2014
Mesajlar
555
Makaleler
2
Daha fazla  
Cinsiyet
Erkek
İf kullanınca Process.Start özelliğini nasıl kullanırım acaba , bir bilgisi olan varsa kodları yazabilir mi ?
 
@ozitime
private void btnProcess_Click(object sender, RoutedEventArgs e)
{
ProcessStartInfo psinfo = new ProcessStartInfo(@"C:\chrome.exe");
Process p = new Process();
p.StartInfo = psinfo;
if (!p.Start())
{
System.Diagnostics.Process.Start("chrome.exe", "www.örnekbiryer.xxx");
}



}

Şöyle bir kod var ancak if (!p.Start()) satırında hata veriyor .

Hatanın resmi ;
Ekran Alıntısı.JPG
 
Problem Process'e argüman olarak verilen yerde chrome.exe'nin bulunmaması. C:\\ olmadan sadece chrome.exe yazınca aşağıda olduğu gibi hata vermeden çalışıyor.

Kod:
private void btnProcess_Click(object sender, RoutedEventArgs e)
        {
            Process p = new Process();         
                ProcessStartInfo psinfo = new ProcessStartInfo("chrome.exe", "http://projecteuler.net/problems");              
                p.StartInfo = psinfo;
                p.Start();                    
        }

Peki chrome.exe nin yerini yanlış versek başka bir deyişle kasden hata oluşmasını sağlasak:

Kod:
         private void btnProcess_Click(object sender, RoutedEventArgs e)
        {
            Process p = new Process();

            try
            {
                ProcessStartInfo psinfo = new ProcessStartInfo(@"C:\chrome.exe");             
                p.StartInfo = psinfo;
                //Chrome'un yeri
                p.Start();
            }
            catch (Exception hata)
            {                             
                System.Diagnostics.Process.Start("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe","http://projecteuler.net/problems");
            }
         
        }
Win32Exception istisnası oluşacağından kodun akışı catch bloğu içindeki kodların işletilmesi ile devam eder.
 
@Fatih Apaydın
Aslında yapmak istediğim onun gibi değildi . Ancak mesajlarınız için teşekkürler çok yardımcı oldular . Benim asıl yapmak istediğim resimdeki gibi . Eğer
Ekran Alıntısı.JPG
chrome.exe ile olmazsa firefox.exe ile bağlanmayı deneyecekti fakat else olmuyor .
 
Kod:
        private void btnProcess_Click(object sender, RoutedEventArgs e)
        {          
            List<string> tarayicilar = new List<string>() { "chrome.exe", "firefox.exe", "iexplore.exe" };

            bool webSayfasiAcildimi = false;

            //Sırasıyla tüm tarayıcıları deneyecek
            for (int i = 0; i < tarayicilar.Count; i++)
            {
                Process p = new Process();
                try
                {
                    ProcessStartInfo psinfo = new ProcessStartInfo(tarayicilar[i],"http://projecteuler.net/problems");
                    p.StartInfo = psinfo;                   
                    //Aşağıdaki satırın istisna fırlatma potansiyeli var
                    p.Start();
                    MessageBox.Show("Web sayfası "+tarayicilar[i]+" ile açıldı.");
                    webSayfasiAcildimi = true;
                    break;
                }
                catch (Exception)
                {
                   
                }
            }

            if (webSayfasiAcildimi == false)
                MessageBox.Show("Web sayfası tanımlı herhangi bir tarayıcı tarafından açılamadı.");
         
        }
 
Estağfirullah elimizden geldiğince kaliteli içerik üretmeye çalışıyoruz. Paylaşımın tek taraflı olduğunu düşünmeyin. Arkadaşlarımızın soruları ile ben de bilgilerimi arttırıyor ve yeni bakış açıları kazanıyorum. Ben teşekkür ederim. Güzel günler.
 
Uyarı! Bu konu 10 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı