MSI 安装程序所有用户:设置 SCRNSAVE.EXE 的值

MSI installer All User : Set value for SCRNSAVE.EXE

在带有 MSI 安装程序的 WPF 程序中,我需要设置 HKCU\SCRNSAVE.EXE(以及 ScreenSaveTimeOut、ScreenSaveActive 和 ScreenSaverIsSecure)注册表项。

问题是当我尝试通过我的 MSI 安装程序项目(设置为所有用户)将所有这些密钥插入注册表时,我的安装程序没有创建密钥。

我已经尝试在 HKLM 上安装此密钥,但配置不适用于 Windows。

有没有办法做到这一点?

谢谢:)

找到解决方案!

我循环进入 HKEY_USERS 以根据需要添加我的注册表项:)

RegistryKey lUsersKey = RegistryKey.OpenBaseKey(RegistryHive.Users, RegistryView.Registry64);

foreach (string lUsersSubKey in lUsersKey.GetSubKeyNames())
{
    try
    {
        RegistryKey lDesktopKey = lUsersKey.OpenSubKey(lUsersSubKey, true).CreateSubKey("Control Panel\Desktop", true);
        lDesktopKey.SetValue("SCRNSAVE.EXE", myScrPath);
    }
    catch
    {
        continue;
    }
}