我正在尝试为我的应用程序创建自己的许可证系统。因此,我正在尝试读取注册表项,但我无法成功完成。
我手动创建了一个注册表项,下面的代码没有读取它。
这是regedit屏幕
这是我的代码
// The Registry key we'll check
// *********** it returns null**********************
RegistryKey licenseKey = Registry.CurrentUser.OpenSubKey("Software\\Acme\\HostKeys");
if ( licenseKey != null )
{
// Passed the first test, which is the existence of the
// Registry key itself. Now obtain the stored value
// associated with our app's GUID.
string strLic = (string)licenseKey.GetValue("test"); // reflected!
if ( strLic != null )
{
// Passed the second test, which is some value
// exists that's associated with our app's GUID.
if ( String.Compare("Installed",strLic,false) == 0 )
{
// Got it...valid license...
return new RuntimeRegistryLicense(type);
} // if
} // if
} // if
我做错了什么?
答案 0 :(得分:1)
您需要先打开test
键然后读取空值。
RegistryKey licenseKey = Registry.CurrentUser.OpenSubKey("Software\\Acme\\HostKeys\\test");
if ( licenseKey != null )
{
string strLic = (string)licenseKey.GetValue(null); // GetValue(null) will return the default of the key.
if ( strLic != null )
{
if ( String.Compare("Installed",strLic,false) == 0 )
{
return new RuntimeRegistryLicense(type);
}
}
}
您尝试做的是在test
键下读取名为HostKeys
的值。