-1

I want to create a setup project that in setup time requires serial number to perform installing action and any serial-key can use only in one computer. So, i want all to give me an idea about how to design my setup project ? What things are required to design it ?

Hossein Mobasher
  • 4,382
  • 5
  • 46
  • 73
  • This is a little too broad to be posted on SO. – Yuck Dec 09 '11 at 15:10
  • I think it is needing to any programmer to know about this! Idea is one subset of algorithm to start programming. – Hossein Mobasher Dec 09 '11 at 15:12
  • 1
    I'd start with outling the logic and getting a startup once you are stuck in a particular point then ask the question in regards to that step. But the idea is to when asking for serial number you have to go to your server and see if that serial is used if not set the status of that serial to used. – Andres Dec 09 '11 at 15:16
  • @Andres: But if the computer that entered on it, want to reinstall program, so it can use this serial and do not requires to enter new serial key! How can solve this problem ? – Hossein Mobasher Dec 09 '11 at 15:18
  • 1
    at uninstall you can have it go back to your server and change status now if the person formatted their pc and now wants to reinstall you'd have to find another way, maybe you can use their pc name or some sort pc data which i don't know if that's been done.. – Andres Dec 09 '11 at 15:22

2 Answers2

2
  1. Firstly you'll need to come up with an algorithm to generate the keys.

  2. You'll need to decide how to issue the keys. If it's a download only title you could generate the key at the time of purchase.

  3. Once you have a valid key generated you can do one of two things.. Create a key validation algorith, or store the issued keys. Both have their ups and downs.

  4. Upon the user trying to activate the software you'll have to create a machine key of some type. It's up to you what information you base it on but a lot of people would use the computer name, may be store the ip address it's activated from, and some other information that to your requirements fits the bill of the same pc reactivating the software. You can here again generate a unique key based off of this information, sometimes called the activation key.

  5. You'll want the user to be able to reactive the software on the same PC, and most likely a way for them to deactivate it (so should they buy a new computer they can carry the license forward, this is up to you again.)

This is the basics of activating software to a PC. You can integrate this into some setup projects, however there are a lot to choose from and I'd suggest picking one out and seeing what capabilities it already has. Some installers support software activation or at least have a way to add that feature so you may be better off going that route.

Pedro's answer above is also a good start.

all2neat
  • 125
  • 4
1

If you have custom methods for validating keys then you could create a separate project to handle your own logic and include it in the Setup Project's Custom Actions.

If you are going to leave the capturing of the data to the Setup Project itself you can look here and here. Also, if you're going to have a license agreement you can check this other SO question.

Community
  • 1
  • 1
PedroC88
  • 3,708
  • 7
  • 43
  • 77