Would you like to offer a demo or trial version of your Windows or Windows Mobile application? Would you like to offer a shareware version of your application?
Introducing.. the Shareware Lock Library
Our Library comes in 2 flavors (a .NET Framework 2.0 library - for Windows Computers and a .NET Compact Framework 2.0 library - for Mobile devices). They both allow you to easily and securly offer trial versions of your software. Using only 2 lines of code you can limit your users to a trial period lasting any number of days. The first step is to generate a Registration Key that is unique to your product using the form below. The second step is to purchase our Shareware Lock Library and code it into your application.
This product works with the Dynamic Registration Library for Windows Mobile devices which provides a useful way to generate a Handango or Pocket Gear registration code based a buyer's Device ID. To learn more about the Dynamic Registration Library (click here).
The Shareware Lock Library is very simple to use:
First add a reference to SharewareLockLibrary.dll & then (optional) add the following using statmement to your program:
Then declare a SharewareLock object passing your program specific Registration String:
RegStr = the string you recieve on this page based on the number of trial days you wish to offer
Company = The name of your company (see HKEY_CURRENT_USER\Software in the Windows Registry for examples)
Product = The name of your program (see HKEY_CURRENT_USER\Software\'Company' for examples)
If you would like to store other program values in the same registry location you can create your key as follows:
Then, view the DemoDaysRemaining property whenever you need to verify the number of days remaining in the trial period:
Then, when your user enteres a valid registration code, unlock the software:
The DemoDaysRemaining property returns the number of days remaining based on the number you entered when you generated your Registration String (referred to as YOURVALUE in the following):
Here is how to interpret the integer value of the DemoDaysRemaining property
obj.DemoDaysRemaining > YOURVALUE = the software has been registered
obj.DemoDaysRemaining < YOURVALUE and obj.DemoDaysRemaining >= 0 = the software is within the trial period
obj.DemoDaysRemaining < 0 = the trial period has expired
note: when obj.DemoDaysRemaining == 0 the software is running on its last trial day
How does it work?
If you are like me, I'm sure you are curious as to how this works.. ..and if you are like me, you also don't want me to tell you. Because, like all registration schemes it can be cracked given enough time and effort. And, knowing how it is done is the first step to piracy. Here are the key features of our product:
Use of the Windows or Device Registry (so you don't have to)
Use of PKI encryption (so you don't have to) - the strength of our method lies in the Registration String that is unique to each product
Hacker attempts to reduce or eliminate the trial period will end the trial period
Once the trial period has expired, the trial can not be restarted by reinstall, deleting registry keys, or manipulating the registry keys
You should verify the number of trial days remaining from time to time with by checking the DemoDaysRemaining property. This is especially important if your program is intended to run for several days at a time.
Be sure to read "Important Note" below.
For developers everything is very simple (2 Lines of code are all that is needed to get the number of days remaining of your product)
Important Note: A security feature in our library will disable the Trial Period and always return -1 for DemoDaysRemaining if other registry entries have been made in the same RegistryKey as passed to the SharewareLock constructor BEFORE the first call to the SharewareLock constructor. Below are several ways to ensure you don't suffer from this issue:
Make SharewareLock a member of your class as follows to ensure it is called first
Place the initial call to "new SharewareLock(...)" before any other "registry write" code in your program. This is normally not an issue, but developers may notice a problem if you have tested saving registry keys before adding the SharewareLock library.
Put the SharewareLock items in a subkey to the keys you use in your program. You can specify a sub key as follows:
If you find yourself in the above situation (where you have started to get -1 returned from DemoDaysRemaining prematurely) you will need to use one of these solutions:
Get a new Registration String from the top of this page, Delete all of your Registry Keys and SubKey folder (important), and try again
or Get a new Registration String from this page, Change the SharewareLock constructor to store the keys in a SubKey (as above)
We wanted to automatically end the Demo period if SharewareLock thinks the registy keys have been tampered with.. Having keys already present in the SubKey used by SharewareLock or even having the folder present is one of the tip-offs that a user may have attempted to get around the Trial period. Other shareware lock software will start a new trial period if the registry keys have been erased (making it easy for a user to keep resetting the Trial period.) Our library does not. This is good for you, the developer. But, you just have to keep in mind that we use the registry in such a manner.
This library is currently available for Windows Mobile devices at Handango and PocketGear for $17.50.
It is available for Windows PC's via e-mail for $30.00.
This Library requires the .NET Compact Framework 2.0 and works on all Supported Device Operating Systems: Windows Mobile Software for Pocket PC 2003, Windows Mobile 5.0 for PocketPC and Smartphone, Windows CE .NET 5.0 and higher.
the .Net Framework 2.0 available from Windows Update and works on all Supported Operating Systems: Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows Vista Business; Windows Vista Business 64-bit edition; Windows Vista Enterprise; Windows Vista Enterprise 64-bit edition; Windows Vista Home Basic; Windows Vista Home Basic 64-bit edition; Windows Vista Home Premium; Windows Vista Home Premium 64-bit edition; Windows Vista Starter; Windows Vista Ultimate; Windows Vista Ultimate 64-bit edition; Windows XP Service Pack 2