I would like offer a network version of my program that would limit the number of users according to their licence.
Generally, I have in mind a dll installed on the server that would keep track of the number of active users and stop any more once a licence limit on number of active users is reached.
I don’t know much about how networks function but I assume the exe is on the server/shared drive and the user has a link on their PC. Clicking the link starts the exe which calls the dll which notes the PC’s network name, logs this (to a file?) and increments the number of active users. Once the user closes the program the number of active users is decremented.
My questions are;
Is this feasible?
How would the dll on the server get the user’s PC name?
What would be the most efficient means of recording PC names and number of active users?
Sorry if this seems like a ramble, but I would appreciate feedback both on the philosophy of the method (there might be a better way..) and the detail of how to achieve this.
You should think about network license manager model.
Application will not start unless it got approval from the license manager (license manager location is part of application configuration)
The license manager will send a “keep alive heartbit” to all of its clients, so it will know when one is down or so.
It can force concurrency and any other key combination you want. no need to register by IP/host name only.
edit:
The following link will take you to an open source product you can use in your application to manage licensing issues.
Using open source components can save you lot of time and money and help you to deliver a more mature product.