HexLicense for Delphi
You have a killer application and want to get it onto the marketplace. But how will you deal with serial numbers? How will you handle trial periods? How will you generate serial numbers in bulk, which online vendors need in order to sell your product?
This is where our license software comes in. Turning your application into a trial version is now a matter of adding some components, setting a few properties – and then deciding what to disable in your code during the trial. With plenty of events and straight forward mechanisms, the license manager component package will save you a lot of time!
Hex license components
Our components are all about generating serial numbers, validation and management of trial periods from within your Delphi application. How you store the license data (file and registry storage components ship with the package) is up to you. If you want to handle the license data yourself, just drop a THexOwnerLicenseStorage component and take charge via the event handlers.
This model gives you the benefit of not having to deal with the low-level stuff (like encryption, data signatures, date and time checking, file validation etc). You also have ample freedom to expand how data is managed, so you are not boxed into “our way of doing things”.
If you have a custom server solution or ordering system online, you can easily extend serial-number validation by calling your server to check usage. You can also use the license generator to create as many serial numbers (based on a root key) as you wish. These lists can be uploaded to all major merchant systems, making sure each customer is assigned a single, unique serial number on purchase.
The Hex License Package is written in pure object pascal, no assembler or external libraries are used in the codebase. It is compatible with Delphi 7 through XE5, both 32 and 64 bit. The package is designed to be platform independent. A Firemonkey edition is planned for the third quarter of 2014.
License management made easy
The entire package consists of seven non-visual components and the license generator application. Starting to use the package is a matter of dropping the desired components on a form, starting the generator application, generating a root key and a bulk of serial numbers, pasting the root-key into your code and setting the trial mode. That is more or less all you need to do for the most basic setup.
It is highly recommended that you disable some features of your application when running under trial. This will encourage users to buy your application to enjoy it in full.
THexLicense is the central component. It allows you to define the trial mode (fixed time range, day trial, run trial) and it’s values. You can also set it to automatically start on loading, which means you don’t have to manually call the component for it to initialize. This component must be connected to a THexSerialNumber component and a THexLicenseStorage adapter.
THexSerialNumber deals exclusively with the serial number. In order for this component to do its work it must be connected to a THexSerialMatrix component.
THexSerialMatrix is the component that handles the “root key”. You provide the root-key via an event handler. The root key is generated with the serial-number generator application that ships with the package (you can also write your own).
THexLicenseStorage is a base component from which THexFileLicenseStorage, THexRegistryStorage and THexOwnerStorage adapters inherit. This is where reading and writing of the actual license data is handled. As the names imply the registry and file adapters are pre-configured to store data in either the windows registry or on disk. If you want to handle the storage yourself (which most people prefer) you can drop a THexOwnerStorage component on your form or datamodule, and take charge via the OnReadData, OnWriteData and OnDataExists events.
THexSerialGenerator is the component used by the generator application to generate serial numbers in bulk. It exists as a component so it can be easily added server-side if you already have an existing ordering system online.