Precise difference between Activate() and IsGenuine() after activation has already occurred

What is the difference in functionality between Activate() and IsGenuine() once activation has already occurred? The impression I get is that they should do the exact same thing under all circumstances (after activation, of course) except that IsGenuine() returns IsGenuineResult and Activate() just throws exceptions when something goes wrong. I'm using C# and the helper class TurboActivate.cs to do my work.

There are a number of differences between the functions.

Activate() activates the product key, or if the key is already activated it re-activates the product key. Activate also re-activates if you remotely deactivated.

IsGenuine() doesn't activate a product key if there isn't already an activation. IsGenuine() doesn't re-activate if you remotely deactivated the computer (in fact, it de-activates the computer).

Does that make sense?

Also, we recommend using IsGenuineEx() for 99% of the cases because you can tell it how often to reverify with the servers (something Activate() doesn't have at all).

Your explanation makes sense, though I think I had better explain my issue so you can better explain the correct approach. The specific issue I'm looking at right now is that I was thinking about using the "IsGenuine()" method for when the user clicks on the option in my program to check for an extension to a verified trial. I already use IsGenuineEx for when the program boots up. However, I need to give the user the option to force a check of the custom fields with the server- otherwise they have to wait until IsGenuineEx decides to re-check with the server.

In your documentation, you recommend using Activate() rather than IsGenuine() for this purpose (that is, getting updates to the custom fields), though I'm not sure I see the advantage in using Activate() over IsGenuine() for this case. Could you explain this, please? I would like to understand the effects of using one over the other in this circumstance.

In your documentation, you recommend using Activate() rather than IsGenuine() for this purpose (that is, getting updates to the custom fields), though I'm not sure I see the advantage in using Activate() over IsGenuine() for this case.

That part of the documentation was written when IsGenuine() didn't automatically get the latest custom license fields if they had changed. We made the IsGenuine() function more sane in TurboActivate 3.3, but we didn't update the documentation to reflect the improved behavior.

That's a long way of saying either function will work in this case. IsGenuine() is probably the better choice for your specific case.

Sounds good. Thanks for the clarification.