C# ile Görev Yöneticisini Tamamen Engelleme

Merhaba Arkadaşlar,
Bir projemde görev yöneticisini engelleme lazım olmuştu ve internet de çok aramama rağmen türkçe kaynak bulamamıştım. Yabancı bir forum sitesinde kodunu buldum ve size burada bu bilgimi aktarmaya çalışacağım. Kod kayıt defterindeki değeri değiştirerek görev yöneticisini engellemektedir. Ayrıca görev yönetici CTRL + ALT + DEL Tuşu ve başlat ikonuna sağ tıkladığımızda çıkan görev yöneticisini aç kısmını da engellemektedir 🙂

Başlıkta da ve yazımda da belirttiğim gibi tamamen engelleme olarak belirttim. Aşağıdaki resimde bununla ilgili bir örnek resim görebilirsiniz.

İlk önce aşağıdaki kodu ilk başta belirtmemiz gerek yani kütüphanemize eklememiz gerek.

using Microsoft.Win32;

Şimdi aşağıdaki kodda regedit ile gerekli yola gidip DisableTaskMgr Yolundaki veriyi “1” olarak değiştiriyoruz. Böylece görev yöneticisini engellemiş olacağız.

RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies", true);
rkey.CreateSubKey("System", RegistryKeyPermissionCheck.Default);
rkey.Close();
RegistryKey rkey2 = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
rkey2.SetValue("DisableTaskMgr", 1);
rkey2.Close();

Eğer yeniden görev yöneticisini aktif etmek istiyorsak “1” olan değeri “0” yapmamız gerek.

RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies", true);
rkey.CreateSubKey("System", RegistryKeyPermissionCheck.Default);
rkey.Close();
RegistryKey rkey2 = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
rkey2.SetValue("DisableTaskMgr", 0);
rkey2.Close();
C# ile Görev Yöneticisini Tamamen Engelleme
Visual Studio Windows Form Proje

“C# ile Görev Yöneticisini Tamamen Engelleme” üzerine 18 yorum

  1. RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@”Software\Microsoft\Windows\CurrentVersion\Policies”, true);
    satırda bendede hata verdi. win32 yi eklememe ragmen

      1. c# ile ?? benm demek istediğim c# kodları arasında eger program başlangıçta çalışıyorsa butonun yazısı “başlangıçta çalışıyor” yazsın

        1. Referans olarak projene aşağıdaki kodu ekle.

          using Microsoft.Win32;
          

          Örnek olarak ben skype programının başlangıçta çalışıp çalışmadığını kontrol ettim. Ayrıca şunu belirtim aşağıdaki kodda skype yazan kısma direkt program adını yazarsan başlangıçta çalışsa bile çalışmıyor olarak gösterebilir. Regedit’de nasıl tanımlandığında bakman gerek onun için.

           RegistryKey AcilisReg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
          
                      if (AcilisReg.GetValue("Skype") == null)
                      {
                          MessageBox.Show("Skype Başlangıçta Çalışmıyor");
                      }
                      else
                      {
                          MessageBox.Show("Skype Başlangıçta Çalışıyor.");
                      }
          
          
  2. sorun çözüldü yönetici olarak çalıştırınca çalışıyor ama bunu sürekli yönetici olarak çalıştıramayız ki bunu nasıl düzeltecez

    1. Manifest dosyası ile yapabilirsin.Solution explorer penceresinde sağ tuş yap Properties i seç sonra oradan Security sekmesini.Orada bir checkbox vardır Enable Click Once Security Settings işaretle onu.Sonra kendi manifest dosyası oluşturuyor.Sonra işaretlediğin checkboxun işaretini kaldır.Gir manifest dosyasının içine ,

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

      yazar

      </requestedPrivileges>

      in üstünde

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

      bu satırı şununla değiştir.

      <requestedExecutionLevel level=" requireAdministrator " uiAccess="false" />
    1. Ben bu kodları Windows 7’de denedim. Hiçbir hata almadım. Windows 8’de deniyorsanız hata alabilirsiniz belki. Ayrıca programını yönetici modunda çalıştırmanızı öneririm.

  3. bende aynı htayı aldım ben kod kısmına using Microsoft.Win32; ekledim ama referans bölümündede eklememiz gerek mi *

    1. using Microsoft.Win32;

      kodunu kodlarınızın en yukarısına ekleyin. En yukarıda using ile başlıycan satırlar var oraya eklemeniz gerek. Zaten resimde herşey gözüküyor. Ayrıca proje dosyasını da konu altında verdim.

  4. hocam programı kopyalayıp yapıstırmama ragmen hata alıyorum
    RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@”Software\Microsoft\Windows\CurrentVersion\Policies”, true);
    bu satar ıcın “Requested registry access is not allowed. ” bu hatayı verıyorsebebı ne olabılır acaba ?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.