Slow IsGenuine check after reboot on some PC'sSolved

I've been using TA in a product of mine for about a year now and for the most part I am a very happy customer.

A user of mine recently complained that my product often takes 15+ seconds to start. This surprised me, as typical program start time is 2-3 seconds for my users.

To troubleshoot, I inserted a performance timer in the startup process to log how long each step takes. To my surprise, for this user the IsGenuine check was taking about 12-13 seconds after a fresh boot. After they close and restart my program, the IsGenuine check only takes about 1.25 seconds (still on the slow side).

For comparison, on my development machine after a fresh boot, IsGenuine only takes about 0.34 seconds. After many tests on my machine, I have a range of IsGenuine times of 0.25 to 0.45 seconds - all perfectly acceptable.

I don't understand why this user is experiencing significantly slower times. I also don't know how many other users are experiencing the same and just never reported it - I'm concerned that prospective users may think my software is no good due to taking so long to start, and just delete it and not ask for help.

I am developing in Delphi, and the user that is experiencing the problem is on a real machine, not virtual.

Here is my code in case I am doing something wrong:

DaysBetweenChecks := 90; GracePeriodLength := 14; try TA := TurboActivate.Create('guid'); GR := TA.IsGenuine(DaysBetweenChecks, GracePeriodLength, True); IsGenuine := (GR = Genuine) or (GR = GenuineFeaturesChanged) or (GR = InternetError); if (not isGenuine) and (TA.IsActivated) then begin try case TA.IsGenuine() of Genuine, GenuineFeaturesChanged : isGenuine := True; NotGenuine, NotGenuineInVM : isGenuine := False; InternetError : begin ShowMessage('Failed to connect with the activation server.'); end; end; except on E : Exception do begin ShowMessage('Failed to re-verify with the activations servers. Full error: ' + E.Message ); end; end; end; except on Ex: ETurboActivateException do begin ShowMessage('Failed to check if activated: ' + Ex.Message); end; end;

Thanks,Paul

If they have a really old computer, or a really cheap computer, then running a TurboActivate function that accesses these components of the computer to generate the fingerprint (like the TA_IsGenuineEx() does), then slow / cheap components will take longer to access the first time.

For 99.99% of customers this won't be a problem. But for customers who buy dirt-cheap computers they will have a marginally slower time.

Also, if they have any SD cards plugged into their system they should remove those. No, SD cards aren't a problem, but extremely cheap chinese knock-off SD cards don't behave correctly and can slow down their system.

Long story short: this won't be a problem for the majority of customers worldwide. And for this particular customer they can probably avoid the problem by removing knock-off garbage from their system.

Thanks Wyatt, I would have never thought about cheap flash media. I'll pass your advice on to the user experiencing the problem.

Also, would you mind blanking out my TurboActivate.Create value above? I included it by accident, and posted without being logged in, so I was unable to clean this up myself.

Thanks,Paul