如何从c#获取许可证密钥

时间:2014-08-14 12:43:13

标签: c# registry

我正在尝试为我的应用程序创建自己的许可证系统。因此,我正在尝试读取注册表项,但我无法成功完成。

我手动创建了一个注册表项,下面的代码没有读取它。

这是regedit屏幕

enter image description here

这是我的代码

// 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

我做错了什么?

1 个答案:

答案 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的值。