我有一个项目,我正在尝试在新电脑上运行安装程序来测试我的 WPF 应用程序,但不会自动创建注册表项。我试过手动添加它,但我不知道为什么它不起作用,我确定我没有以正确的方式添加密钥。我也很困惑,因为它是一台新电脑,我如何添加一些会自动创建路径的东西?我正在创建的图像是这样的:
[对比图片][1]

我有一个项目,我正在尝试在新电脑上运行安装程序来测试我的 WPF 应用程序,但不会自动创建注册表项。我试过手动添加它,但我不知道为什么它不起作用,我确定我没有以正确的方式添加密钥。我也很困惑,因为它是一台新电脑,我如何添加一些会自动创建路径的东西?我正在创建的图像是这样的:
[对比图片][1]

HKLM——你有管理员权限吗?真的有特权吗?
如何测试您是否有足够的权利写信给 HKLM(只需致电OpenSubKey):
public bool CanSetRegKeyValue(string path, string valueName, RegistryKey registry = null)
{
bool result = true;
try
{
RegistryKey registryKey = null;
if (registry == null)
{
registryKey = Registry.LocalMachine;
}
using (RegistryKey key = registryKey.OpenSubKey(path, true))
{
result = key != null;
}
}
catch (NullReferenceException)
{
result = false;
}
catch (SecurityException)
{
result = false;
}
return result;
}
和用法示例,检查DefaultLevel节点 HKLM\SOFTWARE\Policies\Microsoft\Windows\safer\codeidentifiers 下对 Key 的写入能力:
bool result = CanSetRegKeyValue("SOFTWARE\\Policies\\Microsoft\\Windows\\safer\\codeidentifiers\\", "DefaultLevel");