wwsmith Posted July 15, 2008 Share Posted July 15, 2008 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: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 andterminates: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: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 Link to comment Share on other sites More sharing options...
mritter Posted July 15, 2008 Share Posted July 15, 2008 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. Link to comment Share on other sites More sharing options...
wwsmith Posted July 16, 2008 Author Share Posted July 16, 2008 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. Link to comment Share on other sites More sharing options...
mritter Posted July 16, 2008 Share Posted July 16, 2008 Right, it was. But installer.js is where the log entry is called from, not wpi.hta. In installer.js I updatedfunction 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. Link to comment Share on other sites More sharing options...
wwsmith Posted July 17, 2008 Author Share Posted July 17, 2008 (edited) Right, it was. But installer.js is where the log entry is called from, not wpi.hta. In installer.js I updatedThis 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! Edited July 17, 2008 by wwsmith Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now