繁体   English   中英

如何立即更新注册表以及如何使用WMI工具

[英]How to update registry immediately, and how to use wmi tools

我已经更新了一个注册表项来禁用文件夹选项,但是它在注销并登录Windows后生效,或者我编写了一个功能来重新启动explorer进程,每次更改选项时都无法重新启动资源管理器进程。 ..我听说过WMI Windows Management工具,已经对此进行了搜索,但是,我找不到我需要的东西。我的实际代码是:

        RegistryKey rk = Registry.CurrentUser;
        RegistryKey sk1,sk2;


private void Form1_Load(object sender, EventArgs e)
        {


            domainUpDown1.SelectedIndex = 0;
            #region Start Check for Folder Options
            sk1 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\");
            dfo = sk1.GetValue("NoFolderOptions", "No Key").ToString();
            if (dfo == "No Key")
            {
                sk1.SetValue("NoFolderOptions", 0);
                button1.Text = "Disable Folder Options";
            }
            else if (dfo == "0")
            {
                button1.Text = "Disable Folder Options";
            }
            else if (dfo == "1")
            {
                button1.Text = "Enable Folder Options";
            }
            #endregion



        }

private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text=="Enable Folder Options")
            {
                sk1.SetValue("NoFolderOptions", 0, RegistryValueKind.DWord);
                button1.Text = "Disable Folder Options";
            }
            else if (button1.Text == "Disable Folder Options")
            {
                sk1.SetValue("NoFolderOptions", 1,RegistryValueKind.DWord);
                button1.Text = "Enable Folder Options";
            }
        }

我添加了代码以立即更新注册表。 其中包含SendMessage等,...

注册表确实会立即更新。 但是,读取过程(在本例中为资源管理器)只有一种刷新状态的机制,即读取更新的值,仅当您重新登录或重新启动资源管理器时才读取该值。 您不能强制资源管理器以编程方式从注册表中读取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM