TurboActivate says "Activation Successful" but program never opens

I have a user that cannot seem to open my software after activation. This is the first user I've encountered with this problem. Here was our conversation via email:

USER:I just recently purchased your NBT editor for Minecraft on the xbox 360 and I've seem to have run in an issue. After I purchased the product key and opened the software it made me activate again. Once I tried to do that it made me activate again,and then again (you get the point I hope). I was just wondering if there was something i was doing wrong or if there was a quick fix for this? If so please get back to me!(Included pictures of the activation dialog saying activation successful)

ME:Are you changing hardware components of the computer or running a virtual machine? Also, does the computer have an internet connection? Have you ever been able to open the program AT ALL after activation?

USER:I have not been able to open the program at all so far. Yes,I do have an internet connection. And no I am not changing the hardware components on my computer.

-I deactivated the product key from the dashboard.ME:Try it now. Tell me if anything is different

USER:I disconnected my internet connection temporarily just to see what would happen and the program DID open up in 'offline' mode. But other than this, every time i do have internet connection it sends me to the product key activation window. Is there a way to remove that? Once I turned my connection back on and reopened the program it sent me straight to the "Activation was successful" window then it closed. Now it is even doing that when I open it without connection.

ME:I'm curious, is the date and time on your computer set properly?

USER:yes it appears to be. Tuesday, March 10th, 2015 Eastern Time

ME:Do you have any "helpful" cleaning tools that clears "junk" or registry files? Like an antivirus or computer "booster" program?

USER:None that I know of.

-------------------------

I'm not sure what is going on. Seems like IsGenuineEx is returning something that I didn't account for? BTW, I'm using the sample code from the "tutorial" for C++.

Seems like IsGenuineEx is returning something that I didn't account for?

I need more information to help you. What exactly is it returning? If your app doesn't currently expose that information to the customer (either by logging or in some visible error) then you should modify your app so that the error is exposed.

Show me the code you're using.

What happens when the customer runs TurboActivate.exe? Can they activate? What if they run it again? Does it say they are already activated, or does it make them activate again?

Seems like IsGenuineEx is returning something that I didn't account for?

I need more information to help you. What exactly is it returning? If your app doesn't currently expose that information to the customer (either by logging or in some visible error) then you should modify your app so that the error is exposed.

Show me the code you're using.

What happens when the customer runs TurboActivate.exe? Can they activate? What if they run it again? Does it say they are already activated, or does it make them activate again?

Thanks for the reply. I will modify the app in the next update. This specific instance of this problem was resolved somehow when the user woke up the next day, no idea what fixed it. However another user had the same problem and they ended up filing a chargeback and I had to refund the payment. So currently, I'm assuming I have no other users with this issue, but it seems strange to me that it happened at the same time.

Here is the code: (I renamed TurboActivate.exe to a.exe)

QApplication a(argc, argv); MainWindow w;

GENUINE_OPTIONS opts; opts.nLength = sizeof(GENUINE_OPTIONS); opts.nDaysBetweenChecks = 30; opts.nGraceDaysOnInetErr = 14;

opts.flags = TA_SKIP_OFFLINE;

HRESULT hr = IsGenuineEx(L"######", &opts);

if (hr == TA_OK || hr == TA_E_FEATURES_CHANGED || hr == TA_E_INET || hr == TA_E_INET_DELAYED) { // your app is activated and genuine

w.show(); //checks if the latest version is installed if( w.checkVersion() == false) return 1; else return a.exec();

if (hr == TA_E_INET || hr == TA_E_INET_DELAYED) { // TODO: show a warning to your user that this time (or recently) // the IsGenuineEx() failed to connect to the LimeLM servers. } } else { QFile aTest("a.exe"); if(!aTest.exists()) { return a.exit(); } aTest.close();

QProcess a2; a2.start("a.exe"); a2.waitForFinished(-1); a2.close(); // TODO: Not genuine or not activated. Either way you should either // restrict the user from using your app or give the user a trial // of your app. }

I have no idea what this does, but it might be the problem (especially if when they launch TurboActivate.exe it says "Activated Successfully":

if( w.checkVersion() == false)            return 1;

And this is inadequate:

    else    {           QFile aTest("a.exe");        if(!aTest.exists())        {            return a.exit();        }        aTest.close();


        QProcess a2;        a2.start("a.exe");        a2.waitForFinished(-1);        a2.close();        // TODO: Not genuine or not activated. Either way you should either        // restrict the user from using your app or give the user a trial        // of your app.    }

What if they activate successfully? Well, something happens -- but the code shown here does show if you actually check whether they activate successfully or not. It just continue past the end of the if-statement.

The checkVersion statement just connects to my server to check if a new version of my tool is out. It has never been an issue.

As for the second part, what I wrote does actually work fine since the program will never open unless the if statement was true. The line w.show(); is what actually starts the app. So if it goes beyond the if statement, it doesn't matter because it just closes anyway.

This has been working flawlessly for some 600 users, it's just these two that have had an issue with TurboActivate. The user ended up refunding and buying another key that worked fine.

Well, I'll need much more information if you want me to help you. Starting with the original product key and the new product key. Send it to wyatt@wyday.com.