Changed hard drive - not able to re-activate

Using TA for a year or so for my ordinary desktop application written in Java. Now on a Basic plan. Never had huge problems but today I've got an email from one of our customers. He changed his old hard drive and is not able to re-activate our software. I've read that the deactivation is needed. I think the best way for me is offline deactivation (I plan to make a patch for such cases) using DeactivationRequestToFile. But the fact is that I didn't code the protection part myself so may be there is more detailed description of this DeactivationRequestToFile method?Or may be you have or will make some sample code for offline deactivation that which will be useful not for me only. For example our software and all TA files are located at standard folder: C:\Program Files (x86)\

It sounds like the customer did more than just replace the harddrive. Maybe they replaced the harddrive and other components. Or they replaced the harddrive and instead of installing the same version of Windows they installed another version. In any of those cases TurboActivate will see the computer as being different.

As far as deactivation goes, since the customer presumably no longer has access to the old harddrive, just deactivate them from within LimeLM (find their product key, then click "Deactivate" next to their activation on the pkey view page).

If you're using IsGenuineEx() in your app (instead of IsActivated()) then you shouldn't have any fraud problems. Meaning, if they're really installing your app on a different computer (instead of just replacing a harddrive like they said), then the old computer won't be able to user your app after X days.

Make sense?

Thanks for the prompt response.

The fact is that I've deleted his key (not deactivated) from LimeLM. I've made a new key for him but he said he is not able to activate... Yes we use IsGenuine() in our app. So does that mean that after X days (the number is set inside IsGeniune) this user will be able to activate our software with a new key instead of the old deleted by me?

And anyway, is there some sample code of how can user deactivate his key offline or may be a detailed description of DeactivationRequestToFile method?

Yes we use IsGenuine() in our app. So does that mean that after X days (the number is set inside IsGeniune) this user will be able to activate our software with a new key instead of the old deleted by me?

Yes.

In the future, don't delete the key.

And anyway, is there some sample code of how can user deactivate his key offline or may be a detailed description of DeactivationRequestToFile method?

Use either the Deactivate() function or the DeactivationRequestToFile() function. The Deactivate() function does the deactivation by contacting the activation servers. The DeactivationRequestToFile() generates an XML file which the customer sends to you, and then you use it in LimeLM (click "Manual activation" on your dashboard).