For the complete documentation index, see llms.txt. This page is also available as Markdown.

How to prevent reuse of deactivated keys

If you are using the QLM License Wizard, the wizard automatically prevents an end-user from reusing deactivated keys.

If you have implemented your own user interface for activation/deactivation, and would like to prevent end-users from reusing deactivated keys, you will need to implement this functionality in your own user interface as shown below.

  • Add the 2 functions below to your project

  • After you deactivate a license, call StoreDeactivateKey

  • Before you activate a license, call IsDeactivatedKey. If the key has been deactivated, display an error to the user.

private void StoreDeactivatedKey(QlmLicense license, string computerKey)
{
 try
 {
     // we will store the deactivated computerkey on the system and prevent the user from reusing it
   bool userLevelResult;
ย   bool machineLevelResult;
   string errorMessage1;
   string deactivatedKeys = string.Empty;
   license.ReadCookie("DeactivatedKeys", 0, out deactivatedKeys);

ย   if (!String.IsNullOrEmpty(deactivatedKeys))
   {
     deactivatedKeys += ";";
   }
   deactivatedKeys += this.computerKey.Replace("-", "").Trim ();

ย   license.StoreCookie(deactivatedKeys, "DeactivatedKeys", 0, out userLevelResult, out machineLevelResult, out errorMessage1);
 }
 catch { }
 }

private bool IsDeactivatedKey (QlmLicense license, string newkey)
{
 try
 {
     newkey = newkey.Replace("-", "").Trim ();
     // Check if this is a deactivated key
     string deactivatedKeys;
     license.ReadCookie("DeactivatedKeys", 0, out deactivatedKeys);

ย     if (!String.IsNullOrEmpty(deactivatedKeys))
     {
         char[] sep = { ';' };
         string[] keys = deactivatedKeys.Split(sep, StringSplitOptions.RemoveEmptyEntries);
         foreach (string key in keys)
         {
             if (String.Compare(key, newkey, true) == 0)
             {
                return true;
             }
          }
      }
 }
 catch { }

ย return false; 
 }

Last updated