eBook authors eBook Software - create and publish your own ebooks
Create your own eBooks
Learn How To Create, Publish & Market E-Books
E-Book Creation Software
Add sophisticated multimedia to your E-Books
Create E-Book covers in minutes
E-Book Marketing & Promotion made easy
Search engine for E-Books
Interviews with eBook authors
Tools for building better eBooks
Archived Message:

Ebook Expiry Date

ksh I would like my ebook to be this way:
1. Readers need a password to open the protected page for the first time they open the ebook.
2. After a period of time (30 days) or certain date, the ebook can not be open anymore.

Can Active Ebook Compiler do that?
I now ebook can set the expiry date to number of days. but if I copy to another computer, I can view it again for a number of days.
Thanks in advance.

Posted on: 6:45 am on May 4, 2002
EBookCompiler The way the built-in expiry feature works is:

You set up the ebook to expire in X number of days (or after X number of viewings)

You can set some pages to be password protected initially

When the expiry time is over, the rest of the pages become password protected

If the password is entered, the book is usable again

For your question, yes it's possible but it requires some work:
1. Don't both with the built-in expiry feature
2. Do use the password protection feature
3. You need to write an Activ Script which records the time when the ebook is run the first time.  Second and subsequent times you check if the time limit is up, and if it is display a message and exit the book

The script is the hardest part, but definitely possible.

As for copying between computers - unless you have some way that all the different computers are going to communicate, or you script is hard-coded to a specific date, - then yes it would start over on each new computer

Posted on: 12:05 am on May 5, 2002
ksh Thanks for your prompt reply.
I am not a programmer, I am not good at Activ Script.
Do you think you can show me exactly how to do it. I wish my ebook to works this way.
First, user need a password to open all the pages that are protected. Second, after 30 days, all the pages are no longer viewable.
Can you show me how to do it with activ scripts.
Best regards.

Posted on: 2:44 pm on May 5, 2002
Grandmaster I've been working with active script alot.
I'll work up an active script... test it.... and let you know when I have it working. It shouldn't take more than a few days for this

Posted on: 7:04 pm on May 6, 2002
ksh A million thanks.

Posted on: 10:06 am on May 7, 2002
ksh How's the progress?
Actually I need the script quite urgently, hope you will help me to solve the problem ASAP.

Posted on: 1:42 pm on May 15, 2002
So far, I haven't been able to write a script in Active Script that achieves this result.

Here is the run down:
Once the program is compiled and is downloaded by a customer, you can't edit their copy of it any longer. You can take just about any shareware program in the world and reuse it over and over again by placing it on another computer.

This is one solution to that problem:
Compile the program in a setup program such as Inno Setup Program. This creates a setup file with the ebook program inside of it. The customer downloads the setup file and runs it. It unloads your ebook program to a specific area in their hardrive.
Now they have a copy of your ebook program residing in a specific location in their computer and they still have the original setup file that they dowloaded.  The setup file is the program that they can give to another person to place on another computer.
The only way to prevent this from happening is writing a script using another programming language within the actual ebook program itself to "destroy" the setup file.
Active Script cannot destroy files or change the extension of a file. Active Script is powerful but not that powerful.
Even if there was, I don't think Sunnil would let too many people know about it as that bit of information can be pretty destructive in the wrong hands.

I am working with another programming language that can possibly destroy or rewrite the setup file so that the customer cannot use it any longer, much less give it to someone else.
They can't give away the actual ebook program because once you open it, the expiration countdown begins and continues even if they copy it on another computer.

I've been going through several other scenarios and solutions but the above seems to be the only one that would work.  This has turned out to be quite a challenge but I like a good challenge.

Sunnil, if you have any input on this or another solution to this, I'd sure like to hear it.
If you wish, you can email me

Other than that... I'm still working on it.

Posted on: 5:30 pm on May 15, 2002
EBookCompiler Here is how I think I would attempt it

When the ebook is run

1. Look in INI file for a parameter, say X
2. If X was not found, write the current date to the INI file parameter X
3. If X was found, calculate the number of days / months elapsed.  If it's too long, do a MESSAGEBOX then EXIT

The effect of this would be, the first time the ebook is run it remembers the date.  Subsequent times it checks the date, and if the time limit is up tells the user and exits.

Not perfect or absolutely secure, but I think adequate for starters

Posted on: 1:46 am on May 16, 2002
Grandmaster That would work on the same machine, but I think what KSH wants is a secure system of preventing someone from giving another person (with another computer) the program. If the original ebook exe file passed on to another computer, then the whole process would start over again.
If there was a way that the original download date would stay encrypted in with each ebook download, that would solve the problem.
This is one of the solutions that I was pondering on. I couldn't come up with something in this area.
That's why I suggested using the Inno Setup compiler to compile the program so that you could extract the ebook to a specific directory like C:\Program Files\Ebook Name\ and then have a script or another program compiled in with the setup file that will destroy the original setup file after it has been extracted.
That's where your idea would come into play. Then if someone would want to share their copy of the ebook, they would only have the extracted ebook program to share, and it wouldn't work on someone elses system because the countdown would have already commensed. In fact, without the ini file, the ebook program would not work at all if it were on another computer.
By George, I think we've got it.
Now to write some type of program that kills the original setup file after the extraction as taken place.
That's the hard part, but not impossible.

What I've been doing is writing a program that finds the setup file first and then destroys it.  I've got the find file part down. It's the destroy or rewrite of the setup file thats giving me problems.

Posted on: 8:03 am on May 16, 2002
ksh Yes, Grandmaster understand what I want. I want a secure system of preventing someone from giving another person (with another computer) the program.
So, pls anyone out there can give me some helps?
Thanks Grandmaster, thanks Sunnil.

Posted on: 7:18 am on May 17, 2002
ksh I have tried out E-ditor (5 cows), it can do password protection & with expiry date. I like this feature. I wish Activ Ebook can add in this feature also.
BTW, I think Activ Ebook deserve 5 cows not only 4 cows. Activ Ebook has more advantages than E-ditor. Keep up the good works.

Posted on: 9:35 am on May 28, 2002
Canadian ksh, are you still looking for a solution ?

Depending on your method of distributing the ebook (program) and communicating the password, I think I can offer a solution

In a nut shell, the technique is for the startup script to check for the presence of a file (let us call it ekey.dat); if this file existed, go to step (b); else,

-  the script would create this file and write into it information corresponding to the computer's time (century, year, month, day, hour, minute, second and millionth of a second) and a large number derived from this timestamp (a kind of checksum value of sorts to prevent manual tampering of the contents of this file); let us call it TsCheck
- the script would then come up with another large number (say DerivedTsCheck) calculated from TsCheck
- then, it would either display this number for the user to e-mail to you, or better still, display a page with a form (containing DerivedTsCheck as a hidden field) that would send this information to your web site

- you (or your web site) would use DerivedTsCheck to come up with a number N (between 1 and the number of different passwords you have stored in a list-of-passwords); then, returning the N th password from this list to the customer (either via e-mail or as a response to the form being submitted to your website)

b) Having identified the presence of ekey.dat file, the startup activ script would:

-ensure that ekey.dat contained a valid timestamp and its corresponding derivative number TsCheck (i.e. the timestamp had not been tampered with)
-the current time was not past the date/time in ekey.dat file plus however many days you want the ebook to be viewable
- use TsCheck to come up with DerivedTsCheck using the same formula used above before sending it to you or your web site
-use DerivedTsCheck to come up with the value N (using the same formula as your web site did)
-ensure the password entered by the user matched the N th password within a list of passwords hidden within the ebook

Of course, the contents of the ekey.dat file would be obfuscated (a simple form of encryption) to prevent anyone from modifying its contents using notepad or some other editor; the techniques for deriving one number from another and obfuscation can be any simple algebraic equations (answer=a+3b+99 or answer=firstdigit + twice seconddigit etc.) as long as these are hidden inside the ebook (within the .as files) and not revealed to anyone.

This way:
-if the ebook was copied to another computer, its contents could not be viewed without its corresponding ekey.dat file
-any attempt to ask for another password would (of course) be intercepted by you; by also requesting the receipt number (from ClickBank) or other unique identifier used to pay for your ebook in the first place
-if the ekey.dat file were also copied to another computer, the expired timestamp embedded within its contents would prevent the startup script from displaying any of the contents

This should work; any critiques (i.e. possible loop holes) are invited by one and all; if there is further interest, I can elaborate; may be even provide sample .as files (if a suitable method of distributing them can be found)

Why the need for such an elaborate scheme ? Because, the only bullet-proof way is to have the expiry and password information embedded within the eBook.exe file; as far as I know, most operating systems prevent modification of program files while the program is running; so, the only options left are
1) for the eBook compiler to provide another program (like the Rebrander) that knows the innards of your ebook.exe and can properly modify this information within it; the user would run this other program first to update your ebook.exe with the user entered password and an automatic insertion of the current timestamp into a specified field not visible/available to the user; and not permit one/more fields to be entered again and again; a relatively minor change (aren't they all minor when someone else is doing the work !!!) to the Rebrander program could accomplish this feat, assuming the folks at eBookCompiler are interested in providing such a feature/facility
2) if the number of copies of your eBook that you anticipate selling are not that huge, you could always change two lines of code in your startup.as file (i.e. SET('Password', 'BlahBlah') & SET ('Expiry', '2002-09-31')) and rebuild the eBook for each customer. Then, the startup.as would check the user entered password and the current date supplied by the user's computer, before allowing entry to the rest of the pages.

Good luck

Posted on: 11:38 pm on July 17, 2002

List All Archived Forums

Copyright © 2000-2018, Answers 2000 Limited.

With any business, it is up to the individual owner of said business to ensure the success of the business. You may make more or less than any sample figures or results that might be quoted on our web sites or other publications. All business involves risk, and many businesses do not succeed. Further, Answers 2000 Limited does NOT represent that any particular individual or business is typical, or that any results or experiences achieved by any particular individual/business is necessarily typical.

Disclosure: Our company's websites' content (including this website's content) includes advertisements for our own company's websites, products, and services, and for other organization's websites, products, and services. In the case of links to other organization's websites, our company may receive a payment, (1) if you purchase products or services, or (2) if you sign-up for third party offers, after following links from this website. Unless specifically otherwise stated, information about other organization's products and services, is based on information provided by that organization, the product/service vendor, and/or publicly available information - and should not be taken to mean that we have used the product/service in question. Additionally, our company's websites contain some adverts which we are paid to display, but whose content is not selected by us, such as Google AdSense ads. For more detailed information, please see Advertising/Endorsements Disclosures

Our sites use cookies, some of which may already be set on your computer. Use of our site constitutes consent for this. For details, please see Privacy.

Click privacy for information about our company's privacy, data collection and data retention policies, and your rights.

Contact Us    About and Terms Of Use    Privacy    Advertising/Endorsements Disclosures