禁用控制面板

时间:2009-06-03 11:24:48

标签: c# windows controlpanel

我使用以下代码来禁用Windows控制面板。它成功禁用了控制面板,但需要重新启动系统才能应用更改。有人知道如何立即将这些更改应用到控制面板,而无需重启系统吗?任何人都可以帮助我吗?

        RegistryKey RegKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
        RegKey.SetValue("NoControlPanel", true, RegistryValueKind.DWord); RegKey.Close();

        RegKey = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
        RegKey.SetValue("NoControlPanel", true, RegistryValueKind.DWord); RegKey.Close();

        //registry
        RegKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\
        Group Policy Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\System");
        RegKey.SetValue("DisableRegistryTools", true, RegistryValueKind.DWord); RegKey.Close();

        RegKey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System");
        RegKey.SetValue("DisableRegistryTools", true, RegistryValueKind.DWord); RegKey.Close();
        return true;

2 个答案:

答案 0 :(得分:0)

您可以在进行注册表更改后尝试运行Gpupdate。理论上,这应该重新加载组策略详细信息,从而禁用控制面板。

答案 1 :(得分:0)

以下代码将禁用:

Microsoft.Win32.RegistryKey regkey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
                regkey.SetValue("NoControlPanel", true, Microsoft.Win32.RegistryValueKind.DWord);
                regkey.Close();

            regkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
            regkey.SetValue("NoControlPanel", true, Microsoft.Win32.RegistryValueKind.DWord);
            regkey.Close();

重新启用的代码:

Microsoft.Win32.RegistryKey regkey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
                regkey.SetValue("NoControlPanel", false, Microsoft.Win32.RegistryValueKind.DWord);
                regkey.Close();

            regkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
            regkey.SetValue("NoControlPanel", false, Microsoft.Win32.RegistryValueKind.DWord);
            regkey.Close();