2009-06-03 55 views
0

我已使用以下代码来禁用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; 
+0

使用组策略对象。 Explorer识别GPO并在应用GPO时刷新策略缓存。 – 2014-01-29 15:46:42

回答

0

在更改注册表后,您可以尝试运行Gpupdate。理论上这应该重新加载组策略细节,并因此禁用控制面板。

+0

感谢您的回应,Gpupdate不会工作 gpedit /目标:用户/强制 gpedit /目标:计算机/强制 任何其他方法 – 2009-06-27 06:27:23

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