vb6 program using rdp terminal server

We have a vb6 program which is installed in a Microsoft Windows 2008 server , we sell as many licenses as our clients want. One license allows one user to work at the same time with the program from his computer with rdp , for example if our client buys 3 licenses, this mean 7 users in his company can use the program but only 3 at the same time, if the fourth wants to go to the program, the system must say to him that there are not available licenses at this moment, when somebody leaves the program, one license is available.

When a new client buys the program , we ask him how many users does he want , and how many users he wants to be able to use the program at the same time. Sometimes they say 10 users but only 3 at the same time, they pay 3 users and we create in our server a new group with 10 new users.

We have nos found the way to control this. At the moment , 10 users can use the program at the same time.

I don´t know if the solution is with the server or vb6..

This is being quite difficult for us, we controlled it with an Access database in our vb6 program but we had to leave it  because sometimes, one user was using the program, he had a problem with his computer and lost the conexión in a not normal way, so he was out of the program but the counter of licenses has not been updated  

If you have an idea …
timidos timidosAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Brian PringleConnect With a Mentor Systems Analyst II, SCM, ERPCommented:
I used to work for a software company that found a "way" to do this.  What they did was created a registry key and created an entry for each user that was currently in the system.  When they opened the program, the key was created.  When they logged off, the key was deleted.  The program would count how many keys were there and allow the users in accordingly.

It works, but if someone is technically savvy, they could figure it out and delete the entries.  Most of the time, that was not a problem.  What was a problem was if the user did not log off properly and the key remained, then we had to manually delete it.  To fix that, we created a scheduled task on the server to delete the keys at set intervals and set it in the program to recreate the key if it got deleted.
0
 
StampelConnect With a Mentor Commented:
I think i would try to put a keepalive request on the client part that will inform the server part that the user is still alive.
This way you can continue to use the access database, the client would update a table for exemple one time per minute.
If not you would consider the client is dead and decrement the licence current counter.
0
All Courses

From novice to tech pro — start learning today.