我有一个使用VS2010部署项目部署的Windows服务。我要求在安装程序中输入用户名/密码,然后将这些详细信息提交给注册表以供服务使用。
安装程序正常,并且正确设置了自定义操作。如果我尝试传递给HKLM我没有错误但也没有输出,对HKCU的相同命令工作正常。这与标准用户和管理用户(包括RunAs)相同。
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
var username = Context.Parameters["username"];
var password = Context.Parameters["password"];
// HKLM\Software\MySoftware
RegistryKey hklm = Registry.LocalMachine.CreateSubKey("SOFTWARE\\MySoftware");
hklm.SetValue("username", username, RegistryValueKind.String);
hklm.SetValue("password", password, RegistryValueKind.String);
hklm.Close();
// HKCU\Software\MySoftware
RegistryKey hkcu = Registry.CurrentUser.CreateSubKey("SOFTWARE\\MySoftware");
hkcu.SetValue("username", username, RegistryValueKind.String);
hkcu.SetValue("password", password, RegistryValueKind.String);
hkcu.Close();
}
我尝试过使用.OpenSubkey(x,true)而不是CreateSubkey(x)。结果是一样的。
任何帮助都会受到极大关注。
此致
克里斯
答案 0 :(得分:4)
在64位操作系统上,您可以在HKLM \ Software \ Wow6432Node \ MySoftware中找到这些密钥。这些注册表项是针对32位程序虚拟化的。