Feature-Based Trial Node-Locked License

This tutorial demonstrates how to implement Machine License and protect your application as a feature-based trial node-locked license. Specifically, you want to distribute your application as a trial version in which the user can try out the application for a limited features (or modules) and a limited trial period. If the user wants to continue to use the application after the trial period, with full features, you can issue the License Key to turn the trial version into the full featured version.


Based on the settings used in this tutorial, the following describes how the user would experience the protected application.


         When starting the application, the Registration dialog box pops up showing a Registration ID. The user may click the Register Later button to skip registration during the trial period.

         The user can try out the application for a limited features (or modules) and a limited trial period.

         The user cannot gain additional trial period by reinstalling the application or turning back the system clock.

         To register, the user can click the Register button to link to your registration webpage, or send you a registration email. In both cases, the Registration ID is automatically passed to the webpage or the email composer.

         Alternatively, the user may contact you by phone, fax, etc., and provide the Registration ID.

         With the received Registration ID, you can generate the License Key to be returned to the user that turns the trial into full featured version (or extends the trial version).

         During registration, you may collect the user information and charge the user a license fee.

         When the user enters the License Key in the Registration dialog box, the application is turned into the full featured version.

Protecting Applications

The following instructions use ElecKey Integrator (the shell protection method) to protect the application. For feature-based protection, each feature or module of the application must be a separate executable file, and must be assigned a different Module ID. The necessary settings are described below. However, you may change the options as you want.


Besides the shell protection method, you may also use the provided KeyCheck API (including the KeyCheck Class Library and the KeyCheck .NET Component) to protect your application, by specifying the same settings as described below. When using the API, however, it is not necessary to make each feature or module of the application as a separate executable file. Please see Protecting Applications Using API and the provided code examples for more information.

To Protect an Application

1.       Run ElecKey Integrator. The wizard dialog box appears.

2.       In the Select Application License Type dialog, select Machine License.

3.       In the Select Integration Task dialog, select Protect Code and Enforce Licensing.

4.       In the Specify Protected Program dialog, specify one of your executable file names in the Original field. In the Target field, specify a different name for the protected executable file that will be created.

5.       In the Set Identification dialog, assign a Program ID in the Program ID field. In addition, assign a Module ID in the Module ID field.

6.       In the Key Detection Method dialog, select Detect Stand-Alone Key.

7.       In the Set Options dialog, you can use the default settings. Then, click the Key Options button.

8.       In the Key Options dialog box, click the Modules tab. Then, select the checkboxes of the modules you want to license to the trial version.

9.       In the Choose Implementation dialog, select Evaluation.

10.    In the Select Evaluation Mode dialog, select General Evaluation and specify the limits as you want.

11.    In the Customize Messages dialog, from the Dialog Box Style drop-down list, select the option with Auto-activation if you deploy the Activation Server and want to offer online activation to your application. See more details in Tutorials: Activation Server.

12.    In the Customize Messages dialog, the needed dialog boxes for the implementation you have chosen are automatically checked. However, you can enable the dialog boxes as well as edit messages and options as you want. Then, click the Edit button of the Registration Dialog Box checkbox

13.    In the Registration Dialog Box Properties dialog box, click the Options tab. Then, in the URL/Email/Document/Executable field, enter your website URL. For instance, https://www.sciensoft.com/register.html or https://www.sciensoft.com/register.htm?regid=<EncRegID>. Or, enter the email composer parameters. For instance, mailto:service@sciensoft.com or mailto:service@sciensoft.com?subject=Request License Key&body=My Registration ID is <RegID>.

14.    In the Options tab, if you use manual activation, enable the checkbox Add current license status.

15.    In the Create End-User Utilities dialog, the needed end-user utilities for the implementation you have chosen are automatically checked. However, you can choose to build the end-user utilities as you want.

16.    In the Summary dialog, review the action you have chosen.

17.    Click the Integrate button. The protected version of your executable file is created.


Next, repeat the steps above for each of the executable files in your application. In step 5, ensure that you assign the same Program ID and a different Module ID for each executable file. In step 13, you can disable all end-user utilities since you have already created them when you protect the first executable file.


It is recommended that you save your unprotected executable files in a safe place. You can then rename the protected versions to their original file names, and use them further to create a setup package and distribute your application to the user.

Distributing Protected Applications

To create a setup package and distribute your application, please ensure to include the protected versions of your executable files and the ElecKey system files. For Win32/Win64/.NET applications, the following is the list of the needed system files:


         Ekc3220.dll (in \Deploy\Win32App\KeyCheck\)

         Ekc6420.dll (in \Deploy\Win64App\KeyCheck\)

         Ekag20nt.exe (in \Deploy\Win32App\KeyCheck\)

         Ekag6420.exe (in \Deploy\Win64App\KeyCheck\)

         End-user utilities (optional)


The above system files must be placed in the same directory as the protected executable files. Depending on the features you have enabled, you may need additional system files. See the topic Protecting Windows Apps/Deployment for more details.

Licensing Protected Applications

By implementing Machine License, you can license the protected application by generating the License Key to be returned to the user. For feature-based licensing, you can enable the licensed features or modules to be encoded in the License Key. The following instructions describe how to use LicenseKey Manager to generate a License Key.

To Generate a License Key

1.       Run LicenseKey Manager.

2.       In the Main tab of the Key Properties pane, enter the Registration ID received from the user in the Registration ID field. Then, click the Check and get User License Status under the Check button.

3.       The Identification field shows the Key ID, Program ID, and flag decoded from the Registration ID.

4.       The message User License Status: shows the status, and the current license status is loaded into the Key Properties pane, which you can update the license.

5.       From the Implementation drop-down list:

         Select Distribution if you want to generate the License Key that turns the application into the full version with no limit.

         Select Evaluation if you want to generate the License Key that extends the trial period. You can then specify the Expired Date, Max-Day, and Max-Exec as you want.

6.       Click the Modules tab. In the Licensed Modules box, select the checkboxes of the modules you want to license to the full featured version.

7.       From the Note pane, you can enter notes about registration such as the userís name, address, telephone, etc. in the Messages field.

8.       From the Email pane, you can enter the userís email address in the Email Address field.

9.       Click the Key Properties pane. Then, click the Generate button. The License Key is shown in the License Key field. All registration information (including Registration ID, License Key, date, etc.) are automatically recorded in the Registration List pane.

10.    To send the License Key via email, click the Email pane. Then, click the Send button. LicenseKey Manager automatically launches your default email composer with both email address and License Key filled in.