Программное отключение диспетчера задач с помощью С#

Я работаю над киоск-приложением, мне нужно отключить диспетчер задач. Чтобы при нажатии пользователем [Ctrl+Alt+Del] и [Ctrl+Shift+Escape] диспетчер задач не выскакивал. Как?


person Anuya    schedule 04.06.2010    source источник
comment
Без обид, но как пользователь я очень надеюсь, что это невозможно...   -  person Juan Pablo Califano    schedule 04.06.2010
comment
@Juan Pablo Califano, он специально сказал приложение Kiosk. Это не для обычных пользователей. Это обычная и полезная часть большинства киоск-приложений, которые работают в общественных местах, где любой может подойти и использовать их.   -  person Samuel Neff    schedule 04.06.2010
comment
@Сэм. Ах, хороший момент, мой плохой.   -  person Juan Pablo Califano    schedule 04.06.2010


Ответы (2)


Вы можете сделать это, изменив настройки групповой политики.

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());
    }
}
person Samuel Neff    schedule 04.06.2010
comment
Обыграйте меня и гораздо лучше учтите, чем мой :) - person fmark; 04.06.2010
comment
@Sam, можно снова включить? - person Anuya; 04.06.2010
comment
@srk, конечно, просто удалите значение реестра. - person Samuel Neff; 04.06.2010
comment
@Sam, удалить значение реестра? Как ? - person Anuya; 04.06.2010
comment
@srk, используй RegistryKey.DeleteSubKey - person Samuel Neff; 04.06.2010
comment
@srk Или установите значение 0 вместо 1 - person fmark; 04.06.2010
comment
@SamuelNeff Я столкнулся с отказом в доступе к разделу реестра. Как побороть это..? - person Pranesh Janarthanan; 20.09.2017
comment
@Vijayaraghavan вы не можете, если у вас нет разрешения на доступ к реестру, вы не можете изменить это значение. - person Samuel Neff; 20.09.2017

Просто установите соответствующий раздел реестра:

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)
person fmark    schedule 04.06.2010