Proteus is a licensing system that I designed. It helps us to convert a dull Delphi program to a commercial program that we can deliver as a trial/shareware.
Multiple usage scenarios are possible:
- Trial license
The customer receives a trial version of your software. The trial could be fully functional or “crippled” – for example, it will not save the data/project to disk. Upon purchase, we only need to email a key (text) to the customer to upgrade his license from Trial to a Rent or Permanent license.
- Rent license
The customer can rent a license (purchases a license that works for only x days). Later, the customer can also upgrade to a permanent license.
- Permanent license
A Permanent license never expires.
You can send to the customers a license key that unlocks all or only some of parts/modules of your program.
What can Proteus do for us?
Automates the process of selling of your app
If we use an external payment processor, Proteus empowers us to fully automate the process of selling our programs.
For example, I use BlueSnap.com as a payment processor. For products where I must generate keys each day, I pre-generate 5000 unlock keys in my Proteus Key Generator app I and upload them on BlueSnap.
BlueSnap and Proteus take now care of the rest. Upon purchase, each customer automatically receives from BlueSnap one of these unlock keys. The customer enters the key into the program, where Proteus validates the key and unlocks the program.
So, I fully automated the whole process. I don’t even know who my customers are.
When the keys are all gone, I get a notification from BlueSnap, and I generate a new batch and upload them.
We can take measures if a license key is leaked by a customer on serial/cracking websites, by immediately invalidating that key. In case of a “stolen” license key, Proteus can lockdown the program. For this, see the OnKeyStolen event.
Also, measures have been put in place to make sure the customer does not try to temper with the license key it received or with the installation date (for Trial versions).
Proteus can even do marketing
Proteus helps at marketing also. With Proteus we can target a group of people (Paying customers/Trial users/Demo users/All).
For example, we could show news and updates to already paying customers while showing discounts to people that haven’t purchased yet a license.
How to use it?
Typical usage scenario
Drag and drop Proteus control onto your form. Deliver the application as trial to your customers where it will work for 30 days (Trial period) then it will switch to Demo mode.
In the Demo mode, we could cripple program’s functionality severely, or show only a “nag” screen to encourage the customer to purchase a license.
Once the customer pays for a license, we can send them a key to unlock the program. This key will switch the program from Demo mode to Purchased (fully functional) mode.
Is it difficult to integrate Proteus into my app?
We will not see much code in this chapter about Proteus because we only must write a single line of code to integrate Proteus into our applications. Simply call “TProteus.Initialize” at application start-up.
Optionally, we can do some customization by writing code for the event handlers for TProteus.OnSwitchedToDemo and TProteus.OnLicenseFallBack. Well, not even that. For lazy people, Proteus already offers predefined messages for those event handlers, such as
How to convert a regular Delphi app to a Trialware in 5 minutes?
- Install the Proteus package. Drop a TProteus control on your form. Call “TProteus.Initialize” during application initialization.
- In your program’s initialization routine, check the status of the currently installed certificate (TProteus.CurCertif). If the certificate is in:
- Full mode: Write code to let the user use your program
- Demo mode: Write code to prevent the user from using your program (and encourage the user to purchase a license)
- Compile and deliver your application.
Note: The user will receive a notification from Proteus when the trial period expires. Write an event handler for that and decide what to do. For example, we could announce to the user that the trial has expired, we could redirect it to the Purchase webpage, we could shut down the program, we could cripple the program (allow all function except “Save work”). You are limited only by your imagination.
Full blown demo app also available.