【问题标题】:Programmatically disabling Taskmanager using c#使用 c# 以编程方式禁用任务管理器
【发布时间】:2011-02-27 14:30:03
【问题描述】:

我正在开发 Kiosk 应用程序,我需要禁用任务管理器。这样当用户按下 [Ctrl + Alt + Del] 和 [Ctrl + Shift + Escape] 时,任务管理器不应该弹出。怎么样?

【问题讨论】:

  • 无意冒犯,但作为用户,我真的希望这是不可能的......
  • @Juan Pablo Califano,他特别提到了 Kiosk 应用程序。这不适用于普通用户。这是在公共区域运行的大多数 Kiosk 应用程序的常见且有用的部分,任何人都可以走上去使用它们。
  • @Sam。啊,好点,我的坏。

标签: c# windows taskmanager kiosk


【解决方案1】:

您可以通过更改组策略设置来做到这一点。

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());
    }
}

【讨论】:

  • 打败我,比我的要好得多:)
  • @Sam,可以重新启用吗?
  • @srk,当然,只需删除注册表值。
  • @Sam,删除注册表值?怎么样?
  • @srk,使用RegistryKey.DeleteSubKey
【解决方案2】:

只需设置适当的注册表项:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2013-06-05
    相关资源
    最近更新 更多