IsGenuine and Offline Activation

Let's say that I ship my application with the IsGenuine check every 90 days but the customer is behind a firewall or for whatever reason can't connect to the Internet so he has to use the offline activation

Of course then there is no point in calling the IsGenuine function but since the application shipped with it, eventually it will be fired and so maybe invalidate the installation. How should I handle it ?

Furthermore, since in essence they are offline, how can they use the Deactivation functionality if it has to call home for deactivating the key ?thanks !

TurboActivate 3.3 (coming out shortly) includes a new function called IsGenuineEx() which allows you to optionally skip the IsGenuine check if the activation was done offline.

Furthermore, since in essence they are offline, how can they use the Deactivation functionality if it has to call home for deactivating the key ?

Use DeactivationRequestToFile().

What happens when the user changes part of the hardware? Will the turboactivate.dll throw an exception , or it does not notice anything until IsGenuine id fired ?

Should the user first deactivate and then change hardware or can he deactivate after he changes it ?

What happens when the user changes part of the hardware?

We use fuzzy matching to tell whether a user is still activated or not. IsActivate() will return TA_FAIL if the user is not activated (or return "false" if you're using a language other than C/C++).

Should the user first deactivate and then change hardware or can he deactivate after he changes it ?

If the user knows they'll be changing a large amount of their hardware then, yes, that's probably best. But even if they don't do that they can just shoot you an email and you can deactivate them remotely so they can activate on their new computer.

> If the user knows they'll be changing a large amount of their hardware then, yes,> that's probably best. But even if they don't do that they can just shoot you an> email and you can deactivate them remotely so they can activate on their new computer.

If I deactivate from my dashboard,then the pc originally activated should call IsGenuine for it to deactivate on the desktop too? Because the 2nd pc will then activate using the same code,since the code has been freed, and now there will be 2 pcs that are activated. I don't know if that makes any sense?

Deactivation is a very neat and must have feature but I am afraid to implement it because of the thought of people finding a way of exploiting it if I don't do it right. Are there any guidelines?

PS how can I quote properly ?

PS how can I quote properly ?

When we replace this spam haven that is phpBB with something we build in-house, then you'll be able to quote properly.

If I deactivate from my dashboard,then the pc originally activated should call IsGenuine for it to deactivate on the desktop too?

Yes. Or, if you want the user to deactivate immediately then call TurboActivate.Deactivate() to deactivate the machine an online at the same time.

Deactivation is a very neat and must have feature but I am afraid to implement it because of the thought of people finding a way of exploiting it if I don't do it right. Are there any guidelines?

We recommend at least including the deactivation functionality in the uninstaller. That is, call the Deactivate function from your uninstaller.

Another popular method is to have an Activate / Deactivate menu in the help menu of their app. This way a customer can move between computers.