|
-
June 20th, 2002, 05:55 PM
#1
expire
Hi gurus... can anyone help me how to make an .exe to expire in certain days? (This is to set a software for demo purpose)
Thank you in advance,
Kethees
-
June 20th, 2002, 06:57 PM
#2
put this in the form load event, this is one way.
If Date > #12/07/2002# Then End
-
June 21st, 2002, 10:26 AM
#3
not secure enough
But people can change their system date and use it right? Any other idea to prevent this?
thanx,
kethees
-
June 21st, 2002, 10:36 AM
#4
You might need to implement some kinda checking. For example, save into the registry the date of installation and then later you can check, if the computer time is less than the date of installation, the user is cheating. If not you can compare as usual for the expiration date.
There are many ways to do this of course, those people who write SHAREWARE definitely a good source of information since they have to find the best way to allow their software to expire at the right time.
-Cool Bizs
-
June 21st, 2002, 10:40 AM
#5
Bah even with the Registry thing, the user could still cheat ( either using Regedit or even setting the system date the same day after the installation date all the time...
Another way to do this would be to let the user use the software a number of time..
But my favorite is that you take off features depending on if the user has the Shareware or the full version of it.
Nicolas Bohemier
-
June 21st, 2002, 10:59 AM
#6
One method would be to use a storage such as an ini file or registry to store the date the software was installed as well as the date last used. If the system date is less than either of these 2 then it should prevent it's self from loading... It could be that it was an inoncent mistake - So posibly you allow one grace change to the system date before locking the app.
You will need to store the dates in a way they can not be tampered. This could involve using multiple keys to store the encrypted values along with a check key.
Regards
Dan
-
June 21st, 2002, 11:17 AM
#7
Thanks for the suggestions guys... I guess it’s not a smart idea to keep the installation date and expiry day in a database coz anyone can change it. I wonder we I can keep those data…I have never used registry file. I guess it’s generated when I build the package, don’t know how to edit it. Any help on this please?
Thanks,
Kethees
-
June 21st, 2002, 12:11 PM
#8
i agree with bouxmyz2...the registry is an easy edit so it wouldn't be wise to put anything in there because of the same reasons he gave....
don't use the registry and if you don't know how to use it then definately don't edit it with VB before at least figuring it out...the registry isn't created when the program builds, the registry is a part of windows9x and up...win3.x didn't have it cuz that was just a shell for DOS and dos didn't have a registry...as far as i know
but the registry is a binary file that is used by windows to control the configuration of your HW and software. Control panel has to have a source right?...exactly so this is where the configurations are kept. The thing with the registry that you should know...once it is changed it is an instantanious thing...there is no need to save it because the save is already done....do you understand this?
this means backup the registry before you do anything that could ruin your OS configuration...it is critical you understand this because if you change one thing you could screw the entire OS up...if you want more information on registries buy a book or at least look online for info...search google.com
now what i recommend is either limiting options within the program...like if it a program to help write code....TextPad, MS Visual Studios...that sort of thing...disable compiling, or other features that people are going to download your product for. Or if you are going to use the registry, encrpyt your dates so that the person would have to work their ... off to get it, but then once it's cracked it'll stay cracked until the next release and so on and so forth...i don't think that there is ever going to be the perfect controlling capability on a product if you are going to put a time limit on it...and actually even if you are going to let it run for like 20 times, you'll still find the same problem... So you're best bet is to go with a full version that has a registration number that is bought from a websight, and once the person installs the program have the program run the value against a DBase that is on your server to check for duplication. if it isn't there add it and have it run like that for everyone with your product...
then produce a demo version that limits the functionality of the program...these would be my steps if i actually cared enough to limit use of my product....i say freeware, and i say OPENSOURCE!
goodluck however.
- nc
-
June 21st, 2002, 12:36 PM
#9
Kethees,
Wow ... I was not suggesting that kinda complicated registry manipulations. I was just thinking about SAVESETTING and GETSETTING readily available within VB.
And one way to make it difficult for user to cheat is to "encode" or "encrypt" the date. For example, before writting the date out, converts it to string and then add 1 to the ASCII value of each characters in the string. Later on, read the string back into the program and substract 1 from each letters and then convert it back to DATE. Of course you an apply a more complicated algorithm.
To be able to write information during the installation, you might need to use a more advance installation script like Windows Installer or InstallShield that allows you to customize and add components for the installation.
Good Luck,
-Cool Bizs
-
June 21st, 2002, 05:15 PM
#10
I got the point but wonder where to keep the information (date that been installed and expirey day). I know it's not a good idea to keep it in a database. scratchig my head.... any sugguestions???
Thanks,
kethees
-
June 21st, 2002, 09:41 PM
#11
One method I have used is to have the application create a small file with the date that a demo app was installed (encrypted) and stash it in the Windows\System folder or any other Windows folders. (I usually give the file suffix the same as most of the other files in that folder, like.dll, .fnt, etc.) .
With the myriad of files in this folder it would be hard to locate and the reason I encrypt the date is because I know it is possible to find the file. (ie. date of last change thru explorer). I then use this file each time the app is run to see if the time limit is up.
I've thought of using the registry, but because of the reasons noted above I've tended to stay away from this.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|