Jump to content

Recommended Posts

Posted

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.

Posted

**** 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!

Posted (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.js

function 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 by myselfidem
Posted (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 by bphlpt
Posted (edited)

I think the trouble was here:

http://www.msfn.org/board/topic/170927-office-2010-silent-installation-gets-mshtaexe-hung/?p=1067743

timers.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 updated

I think we can revert back and add inside jscript.js

function 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 by myselfidem
Posted (edited)

If this works correctly:

   var timerID=null;   timerID=setTimeout("ins_iTimer()",1000);  // Update display
I think that could be replaced by:

   var timerID=setTimeout("ins_iTimer()",1000);  // Update display
Cheers and Regards Edited by bphlpt
Posted

I think the trouble was here:

http://www.msfn.org/board/topic/170927-office-2010-silent-installation-gets-mshtaexe-hung/?p=1067743

timers.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.js

function 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 display
I think that could be replaced by:

   var timerID=setTimeout("ins_iTimer()",1000);  // Update display
Cheers and Regards

Seem to work fine I need to run the rest of the tests with them.

Posted (edited)

in ie 8 with the proposed changes this happens to the mshta process and installers still lockup.

post-6960-0-49049100-1391531033_thumb.pn

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, ie8

Win7 both architectures ie8, ie9, ie10, ie11

I agree that the code could be cleaner but, quite simply this works...

Edited by Kelsenellenelvian
Posted

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

Posted

If this works correctly:

   var timerID=null;   timerID=setTimeout("ins_iTimer()",1000);  // Update display
I think that could be replaced by:

   var timerID=setTimeout("ins_iTimer()",1000);  // Update display
Cheers and Regards

Works fine using only:

var timerID=setTimeout("ins_iTimer()",1000);  // Update display

Thanks bphlpt

Posted (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: 26

character: 1

Error: 'bit64' is undefined

code: 0

url: file:///C:/WPI_v8.7.2/UserFiles/config.js

and

Line: 631

character: 7

Error: unable to get property 'toString' of undefinded or null reference

code: 0

url: file:///C:/WPI_v8.7.2/WPIScripts/check.js

I 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 by crazydrve

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...