I'm reviewing the 'Stand Alone or Network' example. I've noted that the Local Key ProgramID gets set to 0 while the Network Key ProgramID gets set to 1. Why is that?
The reason for using different Program IDs for the Local and Network Key is that there is a possibility that both Keys may be installed on the same machine. For instance, the Network Key is installed on the NetKey License Server machine. The user could install the application on the same server, e.g. for use in the Terminal Services environment. The Local Key would then be created automatically on the server. Both Local and Network using the same Program IDs would be overwritten by each other.
Note that, if you change the Program ID, you must use ElecKey Integrator to create a new InitLicenseKey that have the new Program ID encoded in it. From the Integrator, choose the task to 'Generate Initiate Codes for KeyCheck API'.
In addition, it is recommended that you run the provided Key Inspector tool while testing the protected program. This is a tool that allows you to see the Keys installed on your machine, including the Key status. It works for both Local and Network Key. You should also use the Inspector to destroy any existing Keys before starting a new test. This will make your machine is fresh like the user's machine. You can also use the Inspector to see whether the Key status changes as expected.