I'm sure there's more than one technique associated with registering products, but the process that I would use would take a significant amount of time. Step 1: Generate 100 unique registration codes. Step 2: Create a constant in each client that matches 1 of those generated registration codes, compile it, and burn the installer package to a cd. Step 3: Package the matching client and registration code together. Step 4: Upon first installation, ask for the valid and matching registration number before any other operation is done. Step 5: If the registration number and client matches, set a registry entry that tells the client whether or not the product has been registered on each concurrent run. Few issues associated with this type of handling: 1\. If the customer loses their registration number, you'll need to have a fail-safe else you are both screwed. 2\. Re-selling and redistribution could lead to potential losses in revenue.