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.
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.
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
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
venks
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.
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?
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?
ASKER
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.
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
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you. I will give it a try.
venks