IPB

Google Frontpage Forums Unattended CD/DVD Guide
 
Reply to this topicStart new topic
> Fix for 'undefined' reboot error in WPI 6.5.1
wwsmith
post Jul 15 2008, 04:08 AM
Post #1





Group: Members
Posts: 4
Joined: 15-July 08
Member No.: 200947
OS: none
Country Flag


It really tooks a long way to locate this bug in VMware!

E.g.: the 'undefined' error comes up if you have the 'LogInstallation' flag in 'useroptions.js' disabled
and choose only one menu entry containing the %reboot% command:

CODE
config.js
...
pn=1;
prog[pn]=['APP 1 - Reboot'];
ordr[pn]=[101];
desc[pn]=['Test APP 1'];
uid[pn]=['APP1'];
dflt[pn]=['yes'];
cat[pn]=['System'];
forc[pn]=['no'];
cmd1[pn]=['"%wpipath%\\Install\\APP_1.cmd" %wpipath%\\'];
cmd2[pn]=['%reboot% 10'];
pn++;

prog[pn]=['APP 2'];
ordr[pn]=[102];
desc[pn]=['Test APP 2'];
uid[pn]=['APP2'];
dflt[pn]=['yes'];
cat[pn]=['System'];
forc[pn]=['no'];
cmd1[pn]=['"%wpipath%\\Install\\APP_2.cmd" %wpipath%\\'];
pn++;
...

The machine reboots and then 'Installer.hta' throws an 'undefined' error and
terminates:

CODE
Installer.hta
...

// Check for ResumeInstall registry entries
try
{
CurrentInstall=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\CurrentInstall");
LastExec=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\LastExec");
LastTopLine=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\LastTopLine");
Language=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\Language");

// ===>
LogPath[0]=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\LogPath");
// ===> this line throws 'undefined' if the REG entry does not exist !!!
// ===> then WPI exits

numCommands=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\numCommands");
curCommand=WshShell.regRead("HKEY_CURRENT_USER\\Software\\WPI\\curCommand");
}
catch (ex)
{
alert(getText(UnableToResumeInstall));
try
{
WshShell.regWrite("HKEY_CURRENT_USER\\Software\\WPI\\ResumeInstall",0,"REG_DWORD");
}
catch (ex)
{;}
ExitWPI();
}
...

The solutions is quite simple: writing the REG 'LogPath' entry by default:

CODE
WPI.hta
...
<script type="text/javascript">
try
{
WshShell.regWrite("HKEY_CURRENT_USER\\Software\\WPI\\Theme",Theme,"REG_SZ");
WshShell.regWrite("HKEY_CURRENT_USER\\Software\\WPI\\Language",Language,"REG_SZ");
WshShell.regWrite("HKEY_CURRENT_USER\\Software\\WPI\\PlayAudioInInstaller",PlayAudioInInstaller,"REG_SZ");
WshShell.regWrite("HKEY_CURRENT_USER\\Software\\WPI\\AudioVolume",Volume,"REG_SZ");

// ===> insert the following line
// ===> to fix

WshShell.regWrite("HKEY_CURRENT_USER\\Software\\WPI\\LogPath",LogPath,"REG_SZ");

// ===>

}
catch (ex)
{;}
</script>
...


Also the 'undefinied' message - when installing Office2003 - is gone...

That's it - I hope you like it smile.gif
Go to the top of the page
 
+Quote Post
mritter
post Jul 15 2008, 11:04 AM
Post #2


WPI Co-Developer
Group Icon

Group: Software Developers
Posts: 654
Joined: 13-November 05
From: Bettendorf, IA
Member No.: 79628
OS: Vista Home Premium x64
Country Flag


Thanks. I put your additional line in install_log.js instead. A "default" entry was not being written. It now writes a "blank" path if Log Installation is not checked.
Go to the top of the page
 
+Quote Post
wwsmith
post Jul 16 2008, 01:47 AM
Post #3





Group: Members
Posts: 4
Joined: 15-July 08
Member No.: 200947
OS: none
Country Flag


QUOTE (mritter @ Jul 15 2008, 11:04 AM) *
Thanks. I put your additional line in install_log.js instead.


Hi,
I think that's just the problem: the flag 'LogInstallation=false' from 'useroptions.js' prevents the setting of the reg key entry - look in 'installer_log.js' - if (LogInstallation) ... . Therefore I put the code add in WPI.hta to secure that the entry is written ever.

Go to the top of the page
 
+Quote Post
mritter
post Jul 16 2008, 03:06 PM
Post #4


WPI Co-Developer
Group Icon

Group: Software Developers
Posts: 654
Joined: 13-November 05
From: Bettendorf, IA
Member No.: 79628
OS: Vista Home Premium x64
Country Flag


Right, it was. But installer.js is where the log entry is called from, not wpi.hta. In installer.js I updated

CODE
function OpenLogFile()
{
    position="installer_log.js";
    whatfunc="OpenLogFile()";

    var logFile;
    var stamp, month, date, hours, minutes, seconds;
    var TheDate = new Date();

    if (LogInstallation)
    {
        if (LogPath=="")

..........

    }
    else
        write default blank reg key here
}


function LogGlobalVariables()
{

This way if Log Installation is checked the official key is written. If not checked a blank one is written just so the read won't error.
Go to the top of the page
 
+Quote Post
wwsmith
post Jul 16 2008, 11:35 PM
Post #5





Group: Members
Posts: 4
Joined: 15-July 08
Member No.: 200947
OS: none
Country Flag


QUOTE (mritter @ Jul 16 2008, 04:06 PM) *
Right, it was. But installer.js is where the log entry is called from, not wpi.hta. In installer.js I updated
This way if Log Installation is checked the official key is written. If not checked a blank one is written just so the read won't error.

You are right - the call comes from installer.js - my mistake!

This post has been edited by wwsmith: Jul 16 2008, 11:37 PM
Go to the top of the page
 
+Quote Post

Google Frontpage Forums Unattended CD/DVD Guide

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 7th January 2009 - 08:52 PM
All trademarks mentioned on this page are the property of their respective owners
MSFN is not affiliated with Microsoft
Copyright © 2001-2008 msfn.org
Privacy Policy