无需重启即可更新Windows资源管理器

时间:2013-04-24 03:23:05

标签: registry associations explorer

我写了一个代码,它改变了资源管理器的文件关联。

public void Associate(String app, String ext)
{
        RegistryKey extKey = classesRoot.CreateSubKey("." + ext, RegistryKeyPermissionCheck.ReadWriteSubTree);

        String prevValue = (String) extKey.GetValue("");
        if (prevValue != null)
        {
            if (prevValue.Equals("BAMP_" + ext))
            {
                extKey.Close();
                return;
            }
            extKey.SetValue(BAMP_BACKUP, prevValue, RegistryValueKind.String);
        }

        extKey.SetValue("", "BAMP_" + ext, RegistryValueKind.String);
        extKey.Close();

        RegistryKey bampKey = classesRoot.CreateSubKey("BAMP_" + ext + "\\shell\\open\\command");

        bampKey.SetValue("", app + " \"\"%l\"\" ", RegistryValueKind.String);
        bampKey.Close();
    }

实际上,它备份旧文件关联并设置新的。

效果很好,注册表已更改。但是,探险家不会阅读新的设置,直到克制。

阅读官方文档,但未找到如何强制重新加载注册表设置。

是否可以强制资源管理器重新加载注册表设置而无需重新启动explorer.exe进程?

提前致谢。

0 个答案:

没有答案