Link to home
Start Free TrialLog in
Avatar of DeanAtteberry
DeanAtteberry

asked on

How to Enforce Program Licensing Programatically?

Hello Delphi Experts,

I would like to enforce the licensing of my program by the number of records stored in the main data table.  For instance...
1 to 250 records  - $25
151 to 600 records -  $75
601 to 1500 records - $150
etc...
And have a programatic check to not allow any additional records to be added until money for the next level of license is sent in.  Also, would need the ability to increase the license remotely, as the users are in different states.

Does anyone know of any third-party products that provide this functionality or is this something that I would have to develop?  If I have to develop it, any suggestions on anything to read on the subject?

Off the top of my head it sounds like I would need the ability to send an encrypted file that could be loaded into a database table in the application with information that would "increase the license to the next level".  e.g.- increase the record count that the program is checking against.  But it would need to be encrypted when sent in the file and stored encrypted in a database table to prevent hacking.  And since it is stored in a database table, it could then be read by the program, thereby enabling the "increasing of the record-count remotely".  

I have never worked with encryption routines before.  Are there commercial products for this or is this something I would have to write myself?

Anyway... if you have any experience on this subject, your thoughts would be appreciated.  

Thank you.

Dean Atteberry.



Avatar of venks
venks

Have a look at Turbopower 'Onguard' components available for free in Sourceforge.net(do a search for Turbopower and select onguard to download the compos)There are free applications which guide you to the various functions
venks
after onGuard might be helpful, you should probably also take a look at Turbo Powers OnActivate wich supports the full licencing lifecycle. As much as i know they have not given it free, but you can pruchase it at Http://www.turbopower.com At their site they also do a compare of OnGuard and OnActivate.
wery intresting problem i have the simular problem
and i do the folowing

like an another point of wiew to the problem

it will work with the paradox,dbase, acces


i lok the database file how is growing
but with

var fil:file of byte;
    i:longint;  
begin
assignfile('c:\bla ..bla\base.db',fil);
reset(fil);
I:= getfilesize(fil);  
closefile(fil);
end;

in the i is the filesize fo base in bytes;

like base is growing in the i-variable you will have biger and biger number


disadventage of this is the database is growing in "jums"
and the erased records also take place in data bases



in sql queryes u mey use query like this

select count(*) from base

with that command u will be have a count of records

this also work and withs sql-bases and with local bases




for seceond part of question

I use  pop3 componet to retrive mails from sicret mail account

every aplication i sent have a unique number and with some matehematic (use whatever you wont) application "lissen" see do the mail for her use is in the pop3 server


when the mail arive with some other mathematic ()
application take a how to go with the licence


this is a wery low teach but and wery low cost solution


and work wery wel in practice













Take a look at Armadillo (http://www.siliconrealms.com/armadillo.htm) it allows various levels of licensing, and one license can be updated to another very easily.
Turbopower onGuard is free.Ihave downloade it (with source code).You can get the link from turbopower.com
venks
Avatar of DeanAtteberry

ASKER

Venks,

I looked at sourceforge.  here is what it says...

OnGuard is a library to create demo versions of your Borland Delphi & C++Builder applications. Create demo versions that are time-limited, feature-limited, limited to a certain number of uses, or limited to a certain # of concurrent network users.

While the demo version (time, feature, uses) and # of network users is good functionality, what I am looking for (in addition to those things) is the ability to control usage by number of records in the master data table.  e.g.-

1 to 250 records  - $25
251 to 600 records - $75
601 to 1500 records - $150

and if, after several months, they have enough records and need to cross one of the boundaries to the next level, I need to be able (via e-mail) to increase the number of records they can have in the main data table.

Thanks,

Dean Atteberry.
 
with onGuard you could send a new code via E-Mail. You could generate the codes with modifiers standing for a Amount n of whatever (maybe your records in this table.

When you check the current code you simply try it with the possible modifier and then you know if your code is valid at all and how many records are allowed ...

isn't that what you wanted?
Venks,

I am not familiar with the code generation process of OnGuard.  You sound like you have used it in a project before?  It sounds like the process involves passing strings to a routine that then returns a code.

I understand that that could then be sent via e-mail to the customer.

Then, on the program side, the code would have to be deconstructed back into its original component strings in order to know what the record limit is.  I assume this is what you meant by "...you simply try it with the possible modifier...".  Does onGuard supply libraries that can be called from within the program to do the deconstruction?

Thanks.
ASKER CERTIFIED SOLUTION
Avatar of sfock
sfock

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thank you.  I will give it a try.