473,394 Members | 1,870 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

How to make a program expire?

JRB
Hi, I want to be able to make one of my C# programs expire after a certain
amount of time. The problem is I would like to do this without relying on the
systems clock, as the user is just able to move the date back and the program
works again. I would also not want to rely on a registry value if possible.
How do those trial versions of programs do this kind of thing? Any ideas
would be appreciated.
Nov 17 '05 #1
5 9997
What you might do is write the date in some fairly obscure location - e.g.,
put it in your program's registry area, encrypted - and detect situations
where the date moves backward from the latest date seen in the past.

Do not write anywhere an ordinary user might not have permission to write
(e.g., in C:\Program Files).

"JRB" <JR*@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
Hi, I want to be able to make one of my C# programs expire after a certain
amount of time. The problem is I would like to do this without relying on
the
systems clock, as the user is just able to move the date back and the
program
works again. I would also not want to rely on a registry value if
possible.
How do those trial versions of programs do this kind of thing? Any ideas
would be appreciated.

Nov 17 '05 #2
Rather than using a date, why not go by ticks of a timer?
So the program is say fully operable for 1 days worth of ticks? You could
store the current number of ticks in the encrypted file the other user
specified when the program closes each time.
"Michael A. Covington" <lo**@ai.uga.edu.for.address> wrote in message
news:%2****************@TK2MSFTNGP15.phx.gbl...
What you might do is write the date in some fairly obscure location - e.g., put it in your program's registry area, encrypted - and detect situations
where the date moves backward from the latest date seen in the past.

Do not write anywhere an ordinary user might not have permission to write
(e.g., in C:\Program Files).

"JRB" <JR*@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
Hi, I want to be able to make one of my C# programs expire after a certain amount of time. The problem is I would like to do this without relying on the
systems clock, as the user is just able to move the date back and the
program
works again. I would also not want to rely on a registry value if
possible.
How do those trial versions of programs do this kind of thing? Any ideas
would be appreciated.


Nov 17 '05 #3

"Uchiha Jax" <i_************************@NOSPAMhotmail.com> wrote in message
news:XI******************@newsfe4-win.ntli.net...
Rather than using a date, why not go by ticks of a timer?
So the program is say fully operable for 1 days worth of ticks? You could
store the current number of ticks in the encrypted file the other user
specified when the program closes each time.


Good idea. The way GoldWave does it is that you get to perform a certain
number of operations, and the total is shown, and when it gets too high, you
have to register the program or de-install it. I think, however, that it
would start afresh if the user re-installed it.

I actually don't like programs that expire (unless the user has paid for a
time-limited license). I prefer for trial or demo versions to simply have
lesser functionality, or something.
Nov 17 '05 #4
Michael A. Covington wrote:
"Uchiha Jax" <i_************************@NOSPAMhotmail.com> wrote in message
news:XI******************@newsfe4-win.ntli.net...
<snip> I actually don't like programs that expire (unless the user has paid for a
time-limited license). I prefer for trial or demo versions to simply have
lesser functionality, or something.


Having a cut-down version of the software available for demo purposes is
a good idea if the functions left behind are useful to the user and can
tell the user wether the functions needed by him/her will be supported
in the purchased version.

For instance, having a CD recording software that would only record 10mb
on a cd for demo purposes would be useless for checking out if it would
support overburn for instance. I've seen other similar useless versions
that cut away the features that separate out the software from
everything else, so as long as you don't fall into that trap then such a
demo would be fine.

--
Lasse Vågsæther Karlsen
http://www.vkarlsen.no/
mailto:la***@vkarlsen.no
PGP KeyID: 0x2A42A1C2
Nov 17 '05 #5
I see your point too. However I also think an expire is just strange
marketing if your goal is to sell software. You effectively loose the
customer when it expires, as they can't start the app to even look at your
about box (At least I have seen that before.) This gives user no other
option but to remove the app. If you limit function in some way and allow
the app to run, at least the possibility is there that they will register
for the full version at some point. Even if not, you have another user to
spread the word. On the other hand, a hard expire of betas may make sense.

--
William Stacey [MVP]

"Lasse Vågsæther Karlsen" <la***@vkarlsen.no> wrote in message
news:Or**************@TK2MSFTNGP09.phx.gbl...
Michael A. Covington wrote:
"Uchiha Jax" <i_************************@NOSPAMhotmail.com> wrote in
message news:XI******************@newsfe4-win.ntli.net...

<snip>
I actually don't like programs that expire (unless the user has paid for
a time-limited license). I prefer for trial or demo versions to simply
have lesser functionality, or something.


Having a cut-down version of the software available for demo purposes is a
good idea if the functions left behind are useful to the user and can tell
the user wether the functions needed by him/her will be supported in the
purchased version.

For instance, having a CD recording software that would only record 10mb
on a cd for demo purposes would be useless for checking out if it would
support overburn for instance. I've seen other similar useless versions
that cut away the features that separate out the software from everything
else, so as long as you don't fall into that trap then such a demo would
be fine.

--
Lasse Vågsæther Karlsen
http://www.vkarlsen.no/
mailto:la***@vkarlsen.no
PGP KeyID: 0x2A42A1C2

Nov 17 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: gsb | last post by:
I trying to use sessions to save a user name/id after login. If the user leaves the site and comes back, how do I force a new session and login?
31
by: Bruce W...1 | last post by:
This is a best practices question. For a website where PHP is used, does it make sense to have both .htm and .php files? In other words, for pages that have no active content there's no point...
7
by: What-a-Tool | last post by:
How does the expire date work setting it server side with asp. I know with javascript setting it client side it will be set to the clients local time, and therefore expire when the clients local...
4
by: Jeff | last post by:
IDE: VS .NET 2003 OS: XP pro sp2 I'm developing a server application, clients will connect to it over the net and start different tasks.... When people sends a command to the program, the...
2
by: Dicky Cheng | last post by:
Hi, I am using absolute expiration to expire my cache object in Cache API. And I set it to expire after 60min. Then I test it, it cache, and everything fine. Then I stop working and lock...
7
by: Novice Computer User | last post by:
Hi. Can somebody PLEASE help. I have spent hours on this.. but I am a total novice and can't seem to figure it out. Here is a .php script. Right now, the minimum amount of time (i.e. duration)...
23
by: Phil Powell | last post by:
// OBTAINED FROM http://www.javascripter.net/faq/settinga.htm // NOTE THAT IF YOU SET days TO -1 THE COOKIE WILL BE SET TO YESTERDAY AND THUS EXPIRE function setCookie(name, value, days, docObj)...
0
by: aspineux | last post by:
setacl and getacl look to be already "Cyrus" specific (according the doc), why not to extend imaplib a little bit more ? Here are some code I wrote and tested to support cyrus "expire" that...
2
by: dougloj | last post by:
Hi. I have an ASP.NET application written in C#. To log in, a user must provide their email address and password. I already give the user a "Remember my Email Address" check box. If they check...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.