Sunday, March 2, 2008

Windows (re)Activation Loop!

I have recently come up with the dumbest Windows XP error I can tell... I got a call from a relative telling that his computer won't let him log on to his Windows XP account and ask for some activation which he had no idea of. I thought that a simple corruption went on his registry and could be fixed by activating his Windows over Internet, some lame problem... But when I went over to check it out, I've seen that it was a much worse case then I've thought.

The Problem
Everything went normal until the log on screen of Windows XP. But when the preferred user account is clicked, the error message appeared telling that the Windows installed must be activated before user could log on. That’s okay, but the next window that popped out read "Your copy of Windows is already activated" and then it kicked out back to the log on screen. So this became a never ending loop and restricted access to Windows which directly restricted access to the registry and the relevant files that could fix this issue.


The Mild Solution
Then I tried to open Windows in Command Prompt and magically it worked. Actually it first sent me to the log on screen again (which made me think that it didn't work and a format would be necessary) but then after clicking on the Administrator account, the Command Prompt window came up. Now the challenge was to find which file had to be edited. After some search on the web I found out that actshell.htm was the file..!

The file is located under: "..\WINDOWS\system32\oobe"
To edit the file under command prompt you simply have to type in "edit actshell.htm" while you are in the \oobe directory. Such a window will open:

Now click Search on the top menu (yes your mouse is still working) and select Find. Type in "Already" and press F3 button until you locate the following codes in line 3609:

if (g_Already_Activated == 0)
{

SetupPageLayout();
InitFrameRef();
g_status = STATUS_OFF;
g_DoActivation = false;
InitCKPT();
if (0 != DirObj.get_AppMode)
{
do
{
PopCKPT();
}
while (null != g_CurrentCKPT);
}
GoNavigate(CKPT_ACTDONE);
SetTimerShowIFrame(900);
}
else if (g_Already_Activated == 999)
You will have to change the if (g_Already_Activated == 0) to if (g_Already_Activated == 1)
So a simple change from 0 to 1 will solve your problem. Now click File on the top menu and select Save. Close the Command Prompt and restart your computer normally.
It must bring up and error telling that you must activate Windows to continue again but this time after clicking OK, the usual activation window shall come. Now you can go on and activate your Windows using your product key...

1 comment:

  1. Bahtsız bebe!!! Bi de gelmiş burda anlatıyo çözümünü falan ya. :)
    Ali Kemal.

    ReplyDelete