Managing the license for desktop applications is straightforward since you always have access to the desktop user interface. This is not always true when you have a component or DLL or system service that doesn’t have a user interface exposed to the user.
Using a License Manager Application
Because it is not possible to display the traditional in-application messages to show the license status or ask the user to activate the software, it becomes necessary to write a separate license manager application (such as a standalone EXE file) to handle the license activation and management.
The license manager application can read the license file for the non-visual software, and show a simple dialog box that displays the current license status and provides the functionality to walk the user through the activation process. An example dialog is shown below:
After activation, this license manager application will update the license status in the license file used by the non-visual software. When the software runs, it will read the license status from this same license file and act appropriately.
Obviously, if the user is running a trial or other type of subscription license and the license expires or they tamper with the system clock, you will want to somehow disable part or all of the non-visual software. To do this, simply disable one or more of the functions of the software by returning an error code from one or more of the critical methods or properties. You can also return a fixed piece of data instead of the actual data the user would be expecting. This error code or fixed data can then be interpreted by the user as an indication that the non-visual software is no longer licensed. They can then run the standalone licensing application to verify or modify the license state.
Additional Considerations for Library License Validation
If your software is in the form of a library rather than an application (which is often the case when selling components for other developers to use), securing your libraries is very similar to securing applications. However, there are inevitably a few more complexities and limitations associated with this type of licensing.
The main thing to consider with licensed libraries is to ensure validation runs often enough before allowing important intellectual property/logic to run, while doing so in a manner that does not adversely affect reliability or performance of your libraries, which could result in issues appearing in the applications that use them.
Creating a License Manager application for activating and managing the license status is required for non-visual software, and should be a straightforward process for your software development team.
Protecting Non-Visual Software Using the SoftwareKey System
The SoftwareKey System has many options for protecting both visual and non-visual software. When protecting non-visual software, using the Protection PLUS 5 SDK is recommended for the added control and flexibility in protecting such an application.
If you have additional questions about protecting non-visual software or using the SoftwareKey System, please contact us.