5

If you want to implement a time limited trial for an application you would probably want to leave behind some flag (registry key, file etc) so a program couldn't just be re-installed.

Are there any schemes that allow you to do this while still passing the various Windows Certification programs?

Generally :-

Applications must correctly and fully uninstall from the machine. This includes removing files, registry keys, GAC assemblies, database tables, metabase settings, active directory accounts, etc. Anything left on the system after uninstall, including system components installed by the application, must be documented and justified - Windows Server 2008 Software Logo Secification - 2.3 Uninstall Cleanly

pnuts
  • 58,317
  • 11
  • 87
  • 139
Ryan
  • 23,871
  • 24
  • 86
  • 132
  • 2
    'must be documented and justified' seems to cover such a behaviour to me. My experience with certification programs (not the windows one though) is that you can get away with breaking almost every rule they provide *as long as you have a valid reason*. It's just getting them to accept a reason that's valid to you ;) – workmad3 Oct 21 '09 at 12:15
  • @workmad3 - the accept might be the problem, these things tend to be a bit by the numbers ;) Unless anyone's got any bright ideas in the next few hours how to do something like this via programming I may close the Q. – Ryan Oct 21 '09 at 13:41

2 Answers2

6

You are taking the philosophy of only allowing installation if a flag is NOT there, which means you need to leave the flag there after uninstall. Also this fails when the user finds the flag and deletes it themself.

Better is if you turn it around and only allow the program to work if a flag IS there. This flag would be a registration key that has the date of expiry encrypted into it. When the program expires or is uninstalled, you delete the flag.

I implement this by making my users come to my site to register and get a free trial key. There are probably other ways, but I like this one because it also allows me to collect info about who is trying my program.

lkessler
  • 19,819
  • 36
  • 132
  • 203
  • 1
    Excellent point - though depending on your market asking for any sort of registration could really reduce number of downloads. Its an ongoing debate e.g. http://network.businessofsoftware.org/forum/topics/2352433:Topic:623 – Ryan Nov 17 '09 at 15:16
  • What you will find is that the people most interested WILL register. Those are the best people to have. They are most likely to buy. And if you make them happy, they will tell their friends bringing in more interested people. – lkessler Nov 17 '09 at 15:39
2

If your app is connected to the Internet, then you could store information on your own server about whether it has been installed before or not. However, this almost certainly needs to be designed in from the start with potential investment in hosting your own server to be available to check against.

I'm sure there must be plenty of cases where files are left behind after an uninstall that are perfectly acceptable. For example, I wouldn't expect all my documents to be deleted when I uninstalled Word.

Big GH
  • 1,321
  • 2
  • 17
  • 29
  • Coming back to this late - IIRC documents stored in a users documents dir (or shared areas) are fine to leave behind but you wouldn't generally put some sort of hidden file with installation date here - that would want to be in programs dir. – Ryan Jun 11 '10 at 13:22