我使用以下代码禁用控制面板:
RegistryKey RegKey = Registry.CurrentUser.CreateSubKey(
@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer");
RegKey.SetValue("NoControlPanel", false, RegistryValueKind.DWord);
RegKey.Close();
Run Code Online (Sandbox Code Playgroud)
以上代码仅在重新启动后禁用控制面板,我想立即应用该设置而不重新启动.请帮我.
试试这个...
private const int HWND_BROADCAST = 0xffff;
private const int WM_WININICHANGE = 0x001a, WM_SETTINGCHANGE = WM_WININICHANGE, INI_INTL = 1;
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, INI_INTL);
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, uint wMsg, uint wParam, uint lParam);
Run Code Online (Sandbox Code Playgroud)
这将通知所有应用程序已对注册表进行了更改,并且接受通知的那些程序将重新加载其设置.
请注意,并非所有应用程序都可以执行此操作,但控制面板等应该可以执