ANASAYFA | BLOG | SORU CEVAP | REFERANSLARIM | DOWNLOAD | HAKKIMDA | İLETİŞİM | ARAMA
C# CTRL+ALT+DEL ENGELLEME

ctrl+alt+del engelleme

C# ile görev yöneticisini kapatmak için Registry/Regedit  ayarlarına müdahale etmemiz gerekiyor. Direk olarak program tarafında kullanıcının Ctrl+Alt+Del yapma işlemini kod ile engelleyemeyiz ama programın başlangıcında registry ayarlarını değiştirip görev yöneticisini iptal edersek programımız çalıştığı sürece artık kullanıcı görev yöneticisine erişemez. Ama eğer programın kapanışında tekrar aktif hale getirmezsek bu sefer kullanıcı artık sürekli olarak görev yöneticisine erişemiyor hale gelir. Programınızda tam olarak ne yapmak istediğinize karar verip ona göre kodlama yapınız. Regedit i açtıktan sonra;

Software\Microsoft\Windows\CurrentVersion\Policies\System

FK-gizle

Şeklinde devam ederseniz ordaki DisableTaskMgr değerine göre görev yöneticisine erişim sağlanır. Eğer değer 0 ise görev yöneticisi aktiftir, 1 ise pasiftir. İstersek bunu kendimiz el ile de değiştirebiliriz, yada yaptığımız uygulamanın içerisine de gömebiliriz. C# tarafına programınız açıkken kullanıcının görev yöneticisini açmasını engellemek isteyebilirsiniz (internet cafe yazılımlarında vs.)

Yalnız dikkat etmeniz gereken bir nokta var. Program tarafında uygularken Regedit in bu dizininde değişiklik yapmak için yönetici izni isteyebilir. O yüzden programınıza yönetici olarak erişmeniz gerekiyor.  Bunu isterseniz programın üzerine sağ tıklayıp, yönetici olarak çalıştır diyerek, yada sürekli olarak her defasında bununla uğraşmayım derseniz programın (*.exe) üzerine sağ tıklayıp özellikler dedikten sonra Uyumluluk/Ayrıcalık düzeyi/Bu programı yönetici olarak çalıştır ı seçerseniz artık programınız otomatik olarak yönetici olarak çalıştırılacaktır.

c-sharp-gorev-yoneticisi-engelleme

Şimdi isterseniz C# tarafında bunu nasıl yapacağımızı inceleyelim. Programımızda registry işlemleri yapacağımız için öncelikle

using Microsoft.Win32;

kütüphanesini referanslarımıza eklememiz gerekiyor. C# ile registry/regedit işlemlerini daha ayrıntılı olarak incelemek isterseniz C# ile REGEDİT/REGISTRY EKLE OKU SİL İŞLEMLERİ  yazımı okuyabilirsiniz. Şimdi aktif etme butonunun altına 

RegistryKey rkey1 = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies", true);

                rkey1.CreateSubKey("System", RegistryKeyPermissionCheck.Default);

                rkey1.Close();

RegistryKey rkey2 = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);

                rkey2.SetValue("DisableTaskMgr", 0);

                rkey2.Close();

kodlarını yazıyoruz. Burada yaptığımız işlem yazının başında belirttiğim dizine erişip ordan DisableTaskMgr değerini 0 olarak atamak. Böylece görev yöneticisini aktif hale getirmiş olduk.

Pasif yapma butonunda yapacağımız işlemde aynı sayılır. Tek farkı atama işleminde 0 değilde değer olarak 1 ataması yapacağız. Böylece görev yöneticisini pasif hale getirmiş oluyoruz.

RegistryKey rkey1 = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies", true);

                rkey1.CreateSubKey("System", RegistryKeyPermissionCheck.Default);

                rkey1.Close();

RegistryKey rkey2 = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);

                rkey2.SetValue("DisableTaskMgr", 1);

                rkey2.Close();

Bu işlem sonucunda ise görev yöneticisine erişim engellenmiş oldu.

Görev yöneticisinin şuanki durumunu görmek için ise set yerine get işlemi yapacağız. Yine aynı dizindeki değere erişip 0 mı 1 mi diye bakıyoruz. Eğer 0 ise aktif 1 ise pasif diyoruz

RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);

string Durum = rkey.GetValue("DisableTaskMgr").ToString();

ÖRNEK PROJE İNDİR




Diğer Yazılarımdan Seçmeler...