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;
}
}
在带有 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;
}
}