Çözüldü C# formunda dosya yolu vermeden uygulama açma nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Hüsnü_Çoban

Hectopat
Katılım
5 Nisan 2020
Mesajlar
2.681
Çözümler
9
Daha fazla  
Cinsiyet
Erkek
Meslek
Sivil Polis
Şimdi mesela ben C# formumda Discord'u açacağım ama mesela başka kişi C: diskini kurup, ben D: diskine kurdum. Varsayılan olarak açmanın yolu var mıdır?
 
Son düzenleyen: Moderatör:
Çözüm
Her program için olmaz bu. Sistem kayıt deferine kayıtlı yazılımlar için geçerli olur. Direkt program ismini verip çalıştır derseniz hata verir genel olarak. O yüzden Process.Start metodu kullanmadan önce ilgili programı sistem üzerinde aramanız gerekiyor.

Hızlı bir arama yapmak için sadece ilgili dosya ismi ve uzantısı ile arama yapmanız lazım. Yoksa tüm dizinleri tek tek taramak zorunda kalır ve bu çok uzun sürebilir.

Ardından ilgili dosya tespit edilirse Process.Start metodunu kullanabilirsiniz.

Onun dışında bu kadar uğraşmak yerine direkt dosya yolu ile verebilirsiniz.

C#:
            string[] list = Directory.GetFiles(@"C:\", "Discord.exe", SearchOption.AllDirectories);
            List<string> dosyalar = new List<string>();

            foreach (string file in list){
                dosyalar.Add(file);
            }


            if (dosyalar.Count == 0){
                Console.WriteLine("Aranan dosya yok");
            }else{
                Process.Start(dosyalar[0]);
            }
Hayır, programın app.manifest dosyasını yönetici olarak ayarlamanız lazım. Ardından derlerken programı Visual Studio yönetici olarak çalıştırmanızı ister ve sorun çözülür.
Tam olarak nasıl yönetici olarak ayarlayabiliriz? Rehberden pek bir şey çıkartamadım.
 
Şu kodu şu kod ile değiştirmeniz lazım.

1678908014791.png
 
Hocam dediğiniz gibi yaptım, VS kendini yeniden başlatmak istedi (yönetici olarak), ancak yine erişim reddedildi hatası alıyorum.
 

Geri
Yukarı