Programmatically disabling Taskmanager using c#
Asked Answered
W

3

5

I am working on a Kiosk application, I need to disable the taskmanager. So that when the user press [Ctrl + Alt + Del] and [Ctrl + Shift + Escape], the taskmanager should not pop up. How?

Washrag answered 4/6, 2010 at 2:16 Comment(3)
No offense, but as a user, I really hope this is not possible...Conk
@Juan Pablo Califano, he specifically said Kiosk application. This is not for normal users. This is a common and useful part of most Kiosk apps that run in public areas where anyone can walk up and use them.Bobbery
@Sam. Ah, good point, my bad.Conk
B
14

You can do it by changing the group policy settings.

public void KillCtrlAltDelete()
{
    RegistryKey regkey;
    string keyValueInt = "1";
    string subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";

    try
    {
        regkey = Registry.CurrentUser.CreateSubKey(subKey);
        regkey.SetValue("DisableTaskMgr", keyValueInt);
        regkey.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}
Bobbery answered 4/6, 2010 at 2:24 Comment(8)
Beat me and much more nicely factored than mine :)Geniculate
@Sam, It is possible to enable it back ?Washrag
@srk, sure, just remove the registry value.Bobbery
@Sam, Remove the registry value ? How ?Washrag
@srk, use RegistryKey.DeleteSubKeyBobbery
@srk Or set the value to 0 instead of 1Geniculate
@SamuelNeff I am facing access to registry key is denied. How to overcome this..?Melvamelvena
@Vijayaraghavan you can't, if you don't have permission to access the registry you can't change this value.Bobbery
G
2

Just set the appropriate registry key:

public void SetRegistryKey(Microsoft.Win32.RegistryKey regHive, string regKey, string regName, string regValue)
{
    bool response = false;

    Microsoft.Win32.RegistryKey key = regHive.OpenSubKey(regKey);
    if (key == null)
    {
        regHive.CreateSubKey(regKey, Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree);
    }
    key = regHive.OpenSubKey(regKey,true);
    key.SetValue(regName, (string)regValue);
}

SetRegistryKey(RegistryHive.CurrentUser, "Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr", 1)
Geniculate answered 4/6, 2010 at 2:26 Comment(0)
S
-2

Run the Command Prompt as administrator. Disable Task Manager:

REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 1 /f

Enable Task Manager:

REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 0 /f

Skeg answered 29/8, 2022 at 14:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.