Çö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.
Katılım
5 Nisan 2020
Mesajlar
2.812
Çözümler
11
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.

 
Hocam dediğiniz gibi yaptım, VS kendini yeniden başlatmak istedi (yönetici olarak), ancak yine erişim reddedildi hatası alıyorum.
 
Anladım. Önce kendiniz ilgili dosya yoluna gidip izin ver demeniz gerekebilir. O yüzden hata veriyor olmalı. Çünkü o klasör için ekstra yetki gerekiyor.
 
İlgili klasöre kendiniz gidip devam demeniz lazım..
 
Sizin aldığınız hata yolu ile Discord klasörü aynı yer değil. O yüzden yeni konu açınız ve beni etiketleyiniz.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…