Strange HappeningsSolved

I changed code to incorporate LimeLM in my application and set up a ProductKey and all seemed to work well (Not activated and then Activated with TurboActivate.exe). I have 3 editions to my application and I chose the middle one. I activated it and it correctly gave me the proper features. I set up for 2 activations and after activating it my Dashboard correctly showed that 1 activation was used.

Now the strange happenings...I went back into my Dashboard and wanted to change the "ProductEdition" custom field to the highest level. However for that Product Key it said that the Product Key was "revoked". I never did anything that I am aware of to revoke the key. It told me the next use of my application would revoke the usage of my product. It did not! I then deactivated the one activation in the dashboard, which was successful. When I ran my application, it still ran with the middle ("Advanced") feature set.

I totally deleted the Product Key and tried using TurboActivate.exe to "reactivate" the application, figuring it would ask me for a product key. It just tells me that the activation was successful, even without a product key in LimeLM's dashboard for the product version.

When I try to run the application it is STILL running in the middle ("Advanced") feature set and if I try, on numerous occasions, to run TurboActivate.exe to "reactivate" or "deactivate" the application, it still tells me the activation was successful.

I don't know what I am missing. How can it be running as "IsActivated" when there is no product key at all for the product?

I totally deleted the Product Key

Ok, but the app will still be activated because your app on the machine doesn't know about the fact that you deleted the key (and it won't know about it until it recontacts the server).

tried using TurboActivate.exe to "reactivate" the application, figuring it would ask me for a product key. It just tells me that the activation was successful

Because TurboActivate.exe just calls IsActivated() and since the machine is still activated the TurboActivate Wizard will say you're still activated.

When I try to run the application it is STILL running in the middle ("Advanced") feature set and if I try, on numerous occasions, to run TurboActivate.exe to "reactivate" or "deactivate" the application, it still tells me the activation was successful.

To deactivate call TurboActivate.Deactivate() in your app.

In the future, when you're changing custom license fields, you have to realize that the change isn't immediately reflected on the customer's machine. You (or the customer) has to force it by re-activating (inside your app, not using the TurboActivate Wizard) or the new fields will be downloaded in X days if you're using IsGenuineEx().

See: Changing fields & getting the changed data in your app.

Does that make sense?

Wyatt,

Yes...that makes sense but that prompts two additional questions:1. Why did my product key show as "Revoked"? I did nothing (that I'm aware of) which could have caused that.2. What would I need to do to make sure that someone who needs to have their key deactivated or "revoked" (if that's the correct term) because of a credit card chargeback (for whatever reason) and they already have been activated? Since, as you said, the app doesn't know it's deactivated until "x" number of days (I currently have it set at 30 days), what should I call and how should I call it (using Delphi) if a situation like that occurs and I want to stop their use immediately?

Thanks for the information you've provided thus far...I appreciate it.

1. Why did my product key show as "Revoked"? I did nothing (that I'm aware of) which could have caused that.

In LimeLM or in your app? If in LimeLM, then you might've accidentally clicked "revoke product key". You can click "reenable product key" and it undoes that.

If in your app, then what exactly is being returned from what function?

2. What would I need to do to make sure that someone who needs to have their key deactivated or "revoked" (if that's the correct term) because of a credit card chargeback (for whatever reason) and they already have been activated?

If it's a chargeback or some instance where the "customer" is dishonest, then they'll get 30 free days of usage out of your app before they'll no longer be able to use it again. Also, make sure they don't come back to you and buy another license.

If it's a case where a customer is asking for a refund, then revoke the key then tell them to deactivate your app first before you give them a refund. You'll be able to see if they've deactivated or not in LimeLM.

> In LimeLM or in your app?In LimeLM. I might have done what you stated. I'll have to watch that.

> If it's a chargeback or some instance where the "customer" is dishonest, then they'll> get 30 free days of usage out of your app before they'll no longer be able to use> it again. Also, make sure they don't come back to you and buy another license.

Okay... That makes sense. It's definitely better than banning a license key file or the like as used by other licensing solutions.

> If it's a case where a customer is asking for a refund, then revoke the key then> tell them to deactivate your app first before you give them a refund. You'll be> able to see if they've deactivated or not in LimeLM.

Okay...if it's a business application and they have multiple activations (let's assume 10 for sake of argument), if I revoke the key, will they only have to deactivate the app once or will they have to do it for all 10 activations?

if I revoke the key, will they only have to deactivate the app once or will they have to do it for all 10 activations?

If you revoke the key, then after X days they'll be deactivated no matter what. But if you want to ensure the customers don't get "free usage" of your app in the meantime then you'll have to tell them to deactivate all the machines.

Of course it's entirely up to you.

Wyatt,

Thanks for all the information in this thread. I was able to completely rewrite the licensing in my flagship application and after testing it yesterday, it worked just as I hoped it would. Now I can finally and confidently release it.

I had planned on using a solution which would have placed a license file or registry entry (based on my choice) on the end-users computer. The license would have "written" the purchaser's agency name in many key locations (which I duplicated with custom fields in LimeLM) but I could see the license key file/registry information being shared between smaller agencies.

Now I won't have that worry with LimeLM. I even implemented "ExtraData" within the application so it will record the end-user's computer name in my dashboard, even though the IP address in an agency might (most likely will) be the same.

Thanks again...

Great, I'm glad we could help you. If you ever have any more questions don't be afraid to ask. 🙂