c# Desktop

c# Projesini Administrator Yetkisiyle Nasıl Çalıştırabilirim

Windows İşletim Sistemi güvenlik açısından programlar çalıştırılırken Administrator yetkisi istemektedir. Eğer projenizde yönetici yetkisi gerektiren bir ayar söz konusuysa projenizi Administrator yetkisiyle şöyle çalıştırabilirsiniz.

Yöntem 1

Projeye manifest dosyası ekleyiniz. Eklediğiniz bu dosyanın içine aşağıdaki kodu yazınız.

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

Kullanıcı, uygulamayı başlatırken her zaman bir UAC istemi alır. Eğer projede “ClickOnce does not support the request execution level 'requireAdministrator.'” hatası alırsanız, proje ismi üzerindeyken farenin sağ tuşuna basıp özelliklere gelin. Burada Security sekmesini tıklayın. Burada "Enable ClickOnce security settings" onay kutusundaki işareti kaldırın.

Yöntem 2

Bu yöntemde projenin admin yetkisiyle açılıp açılmadığı kontrol edilmekte ve admin yetkisiyle proje yeninden başlatılmaktadır. Aşağıdaki metodu program.cs dosyasına yazınız.

        public static bool IsAdministrator()
        {
            WindowsIdentity identity = WindowsIdentity.GetCurrent();
            WindowsPrincipal principal = new WindowsPrincipal(identity);
            return principal.IsInRole(WindowsBuiltInRole.Administrator);
        }

Aşağıdaki kodu formun Shown olayına yazınız.

            this.Cursor = Cursors.WaitCursor;
            AdminRelauncher();
            this.Cursor = Cursors.Default;

Burada AdminRelauncher() metodunu tanımlayalım.

        private void AdminRelauncher()
        {
            if (!Program.IsAdministrator())
            {
                ProcessStartInfo proc = new ProcessStartInfo();
                proc.UseShellExecute = true;
                proc.WorkingDirectory = Environment.CurrentDirectory;
                proc.FileName = Assembly.GetEntryAssembly().CodeBase;
 
                proc.Verb = "runas";
 
                try
                {
                    Process.Start(proc);
                    Application.Exit();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("This program must be run as an administrator! \n\n" + ex.ToString());
                }
            }
        }

Bu metodu aşağıdaki gibi de tanımlayabiliriz.

        private void AdminRelauncher()
        {
            if (!Program.IsAdministrator())
            {
                // Restart and run as admin
                var exeName = Process.GetCurrentProcess().MainModule.FileName;
                ProcessStartInfo startInfo = new ProcessStartInfo(exeName);
                startInfo.Verb = "runas";
                startInfo.Arguments = "restart";
                
                Process.Start(startInfo);
                Application.Exit();
            }
        }
 

 


İlgili Makaleler
Veri Girişi Doğrulama (Input Validation)
Basit Veri Bağlama (Simple Data Binding)
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
c# Programında Bigpara Sayfasından Borsa Verilerini Selenium Kütüphanesini Kullanarak Çekme
Kompleks Veri Bağlama (Complex Data Binding)
Veri Girişi Maskeleme (MaskedTextBox)
Yıkıcı Metotlar (Destructors)
Kaçan Buton Oyununu Yapan c# Uygulaması
Konsol Ekranında Kod Yazma ve Çalıştırma
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Form Sınıfı
Form Sınıfına Ait Bazı Olayların ve Özelliklerin Kullanılmasına Ait Örnek Uygulama
Verilen İki Matrisi Çarpan Programı c# Dilinde Form Ortamında Yapınız
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
Metodu Sonlandırma
GroupBox Paneliyle Gruplandırılan Bilgisayar Parçalarının Satışını Yapan c# Form Uygulaması
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
Sayısal Loto Çekilişini Yapan c# Uygulaması
Yapıcı Metotlar (Constructors)

Yorum Ekle
   
Kötü
İyi