Kelsenellenelvian Posted February 2, 2014 Author Share Posted February 2, 2014 v8.7.2 refresh has been uloaded!v8.7.2 Updates - Released Feb 2nd, 2013 ====================================================**** More lang cleaning.**** Base theme improvements.**** Win XP installer fixes.**** Rollback of timer changes.**** Major improvements to ie detection!**** MSHTA Proccess no longer burns cpu cycles. Link to comment Share on other sites More sharing options...
Kelsenellenelvian Posted February 3, 2014 Author Share Posted February 3, 2014 Performance on XP is amazingly better! Link to comment Share on other sites More sharing options...
shabador Posted February 3, 2014 Share Posted February 3, 2014 **** MSHTA Proccess no longer burns cpu cycles.Sweet. I've been noticing that the process sometimes slows to a crawl, eating up the cpu on some configurations with 8.7.0. Keep up the great work! Link to comment Share on other sites More sharing options...
myselfidem Posted February 3, 2014 Share Posted February 3, 2014 (edited) Inside WPI.hta we can add on line 112:if (getOSver()=="XP" || getOSver()=="Vista" || getOSver()=="Win7" || getOSver()=="Win8" || getOSver()=="Win8.1")Timer works using like this:timers.jsfunction ins_iTimer() // this doesn't work correctly at midnight...{ position="timers.js"; whatfunc="ins_iTimer()"; var timerID=null; var txt=""; var now=new Date(); var nowSecs=(now.getHours()*60*60) + (now.getMinutes()*60) + now.getSeconds(); var elapsedSecs=nowSecs - ins_startSecs; var hours=Math.floor(elapsedSecs/3600); elapsedSecs=elapsedSecs - (hours*3600); var minutes=Math.floor(elapsedSecs/60); elapsedSecs=elapsedSecs - (minutes*60); var seconds=elapsedSecs; txt=((hours < 10) ? "0" : "") + hours; txt += ((minutes < 10) ? ":0" : ":") + minutes; txt += ((seconds < 10) ? ":0" : ":") + seconds; document.getElementById("TimerDisplay").innerHTML=txt; timerID=setTimeout("ins_iTimer()",1000); // Update display}About: [Feature] WMI-based TimedWaitForProgram. How this function is called and it's not now inside jscripts ?http://www.msfn.org/board/topic/163522-feature-wmi-based-timedwaitforprogram-no-tasklist-prompts/Regards Edited February 3, 2014 by myselfidem Link to comment Share on other sites More sharing options...
Kelsenellenelvian Posted February 3, 2014 Author Share Posted February 3, 2014 That timer code is inappropriate because it causes mshta to burn CPU cycles and random lock ups on multiple sub process installers. Link to comment Share on other sites More sharing options...
bphlpt Posted February 4, 2014 Share Posted February 4, 2014 (edited) AFAIK, changing:var txt="";...elapsedSecs=elapsedSecs - (minutes*60);var seconds=elapsedSecs;txt=((hours < 10) ? "0" : "") + hours;txt += ((minutes < 10) ? ":0" : ":") + minutes;txt += ((seconds < 10) ? ":0" : ":") + seconds;to:...var seconds=elapsedSecs - (minutes*60); var txt=((hours < 10) ? "0" : "") + hours + ((minutes < 10) ? ":0" : ":") + minutes + ((seconds < 10) ? ":0" : ":") + seconds;will make the code a tiny bit smaller and possibly immeasurably faster and not cause any problems. I don't see how it could cause "mshta to burn CPU cycles and random lock ups on multiple sub process installers". The only thing you are changing is the the assignment of value to two variables.Cheers and Regards Edited February 4, 2014 by bphlpt Link to comment Share on other sites More sharing options...
Kelsenellenelvian Posted February 4, 2014 Author Share Posted February 4, 2014 I'll run tests in the morning with installers I know caused issues. I ran over a dozen tests yesterday in different configurations. Link to comment Share on other sites More sharing options...
myselfidem Posted February 4, 2014 Share Posted February 4, 2014 (edited) I think the trouble was here:http://www.msfn.org/board/topic/170927-office-2010-silent-installation-gets-mshtaexe-hung/?p=1067743timers.js working fine:function ins_iTimer() // this doesn't work correctly at midnight...{ position="timers.js"; whatfunc="ins_iTimer()"; var now=new Date(); var nowSecs=(now.getHours()*60*60) + (now.getMinutes()*60) + now.getSeconds(); var elapsedSecs=nowSecs - ins_startSecs; var hours=Math.floor(elapsedSecs/3600); elapsedSecs=elapsedSecs - (hours*3600); var minutes=Math.floor(elapsedSecs/60); var seconds=elapsedSecs - (minutes*60); var txt=((hours < 10) ? "0" : "") + hours + ((minutes < 10) ? ":0" : ":") + minutes + ((seconds < 10) ? ":0" : ":") + seconds; document.getElementById("TimerDisplay").innerHTML=txt; var timerID=setTimeout("ins_iTimer()",1000); // Update display}*Edit: timers.js updatedI think we can revert back and add inside jscript.jsfunction TimedWaitForProgram(ImageName,HowLong){ position="jscript.js"; whatfunc="TimedWaitForProgram()"; var Elapsed=3; Pause(3,0); while (Elapsed<=HowLong*60) { var oExec = WshShell.Exec('tasklist.exe'); while (oExec.Status == 0) Pause(0,100); var Output = oExec.StdOut.ReadAll() + oExec.StdErr.ReadAll(); if (Output.search(ImageName)==-1) return; Pause(3,0); Elapsed += 3; }} Edited February 6, 2014 by myselfidem Link to comment Share on other sites More sharing options...
bphlpt Posted February 4, 2014 Share Posted February 4, 2014 (edited) If this works correctly: var timerID=null; timerID=setTimeout("ins_iTimer()",1000); // Update displayI think that could be replaced by: var timerID=setTimeout("ins_iTimer()",1000); // Update displayCheers and Regards Edited February 4, 2014 by bphlpt Link to comment Share on other sites More sharing options...
Kelsenellenelvian Posted February 4, 2014 Author Share Posted February 4, 2014 I think the trouble was here:http://www.msfn.org/board/topic/170927-office-2010-silent-installation-gets-mshtaexe-hung/?p=1067743timers.js working fine:function ins_iTimer() // this doesn't work correctly at midnight...{ position="timers.js"; whatfunc="ins_iTimer()"; var now=new Date(); var nowSecs=(now.getHours()*60*60) + (now.getMinutes()*60) + now.getSeconds(); var elapsedSecs=nowSecs - ins_startSecs; var hours=Math.floor(elapsedSecs/3600); elapsedSecs=elapsedSecs - (hours*3600); var minutes=Math.floor(elapsedSecs/60); var seconds=elapsedSecs - (minutes*60); var txt=((hours < 10) ? "0" : "") + hours + ((minutes < 10) ? ":0" : ":") + minutes + ((seconds < 10) ? ":0" : ":") + seconds; document.getElementById("TimerDisplay").innerHTML=txt; var timerID=null; timerID=setTimeout("ins_iTimer()",1000); // Update display}I think we can revert back and add inside jscript.jsfunction TimedWaitForProgram(ImageName,HowLong){ position="jscript.js"; whatfunc="TimedWaitForProgram()"; var Elapsed=3; Pause(3,0); while (Elapsed<=HowLong*60) { var oExec = WshShell.Exec('tasklist.exe'); while (oExec.Status == 0) Pause(0,100); var Output = oExec.StdOut.ReadAll() + oExec.StdErr.ReadAll(); if (Output.search(ImageName)==-1) return; Pause(3,0); Elapsed += 3; }}These ^ and this:If this works correctly: var timerID=null; timerID=setTimeout("ins_iTimer()",1000); // Update displayI think that could be replaced by: var timerID=setTimeout("ins_iTimer()",1000); // Update displayCheers and RegardsSeem to work fine I need to run the rest of the tests with them. Link to comment Share on other sites More sharing options...
Kelsenellenelvian Posted February 4, 2014 Author Share Posted February 4, 2014 (edited) in ie 8 with the proposed changes this happens to the mshta process and installers still lockup.I think its going to be best just to leave it as is right now.I verified that the issues that were being reproduced (Office install lockups and multi-stage installers lockups, I had reproduced both) do not exist with the 8.7.2 refresh on the following real life setups:XP\SP3 ie6, ie7, ie8Win7 both architectures ie8, ie9, ie10, ie11I agree that the code could be cleaner but, quite simply this works... Edited February 4, 2014 by Kelsenellenelvian Link to comment Share on other sites More sharing options...
bphlpt Posted February 4, 2014 Share Posted February 4, 2014 By all means it is better to stay with what works, but that is very odd and I have no idea what is causing it. Thanks for all you testing Kel.Cheers and Regards Link to comment Share on other sites More sharing options...
myselfidem Posted February 6, 2014 Share Posted February 6, 2014 If this works correctly: var timerID=null; timerID=setTimeout("ins_iTimer()",1000); // Update displayI think that could be replaced by: var timerID=setTimeout("ins_iTimer()",1000); // Update displayCheers and RegardsWorks fine using only:var timerID=setTimeout("ins_iTimer()",1000); // Update display Thanks bphlpt Link to comment Share on other sites More sharing options...
crazydrve Posted February 10, 2014 Share Posted February 10, 2014 (edited) I dont know if anyone else got this but I just downloaded and copied over my configs and I get the following errors:Line: 26character: 1Error: 'bit64' is undefinedcode: 0url: file:///C:/WPI_v8.7.2/UserFiles/config.jsandLine: 631character: 7Error: unable to get property 'toString' of undefinded or null referencecode: 0url: file:///C:/WPI_v8.7.2/WPIScripts/check.jsI launch a clean copy and i dont see anything about 64bit processing under options wizard in tools area?I am doing something wrong?Thank you for all the hard work on this app. I just donated also. Edited February 10, 2014 by crazydrve Link to comment Share on other sites More sharing options...
myselfidem Posted February 10, 2014 Share Posted February 10, 2014 Remove inside your config.js all lines with:bit64[pn]=['yes'];andbit64[pn]=['no'];Cheers Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now