Help - Search - Members - Calendar
Full Version: 5.3 Bugs and issues
MSFN Forums > Member Contributed Projects > Windows Post-Install Wizard (WPI) > Bug tracker
Pages: 1, 2

   
Google Internet Forums Unattended CD/DVD Guide
Kelsenellenelvian
Please post them here.
Avneet
if an app is marked as forced.. and when u click on exit it doesnt get installed. can anyone cum up wit a quic fix.. thx
g3o
The command line bug is still present unless fix 5 is applied from 5.2 buglist!
zorphnog
QUOTE (Avneet @ Aug 9 2006, 03:18 AM) *
if an app is marked as forced.. and when u click on exit it doesnt get installed. can anyone cum up wit a quic fix.. thx


I haven't had a lot of time to look at it, but this should be a quick fix.

In check.js:
CODE
function remChecks()
{
    position="check.js";
    whatfunc="remChecks()";

    var elem;

    for(i = 1; prog[i] != null; i++)
    {
        elem = document.getElementById("chkbox"+i);
        if (elem==null)
            continue;
        if (forc[i]!=null && forc[i]=='yes')      //ADD THIS LINE
            continue;                             //ADD THIS LINE
        elem.checked=false;
    }
}
zorphnog
After looking at the forced app on exit issue further, the fix I supplied works. However, in an effort to keep the code clean the following should also be applied to reduce redundant code.

In installer.js:
CODE
function InstallPrograms()
{    
    position="installer.js";
    whatfunc="InstallPrograms()";

    var i, j;

    for(i=1; prog[i] != null; i++)
    {        
        if (forc[i] != null && forc[i]=="yes" && ReallyForce)    //REMOVE THIS LINE
            setChecked(i);                                       //REMOVE THIS LINE
        
        if (document.getElementById("chkbox"+i) && document.getElementById("chkbox"+i).checked)
            programs[programs.length++] = new program(i);                    
    }

...
mritter
The problem with Force is that some people want to be able to Exit without doing installs, like me when I am writing/tetsing code, while others always want it to be forced no matter what. That is fine when run from a UACD, but from desktop during testing.

This is an old topic that wasn't 100% decided upon, so I will implement what I suggested back then into 5.4:

Have these 2 check boxes:

* Always force installs when start installation

* Always force installs when exitting

You can then check either or both depending on what you are doing. Sound good?


-------------------------------------

@g3o That bug is still there. We know. The problem is that it partially fixes it, but 100%. Dje and I are still looking at it.
eagle47benny
I get the attached error when the timer runs out on an unattended install from DVD. If I ckick Ok it goes on and does the install just fine. If I catch it before the timer runs out and click begin install it runs just fine.
Dynaletik
Hmm, I can't reproduce the error with the timer you get. I just tested from HDD and from DVD with 60 seconds and everything just goes fine. What delay do you use? How many seconds?
zorphnog
QUOTE (mritter @ Aug 9 2006, 01:48 PM) *
The problem with Force is that some people want to be able to Exit without doing installs, like me when I am writing/tetsing code, while others always want it to be forced no matter what. That is fine when run from a UACD, but from desktop during testing.

This is an old topic that wasn't 100% decided upon, so I will implement what I suggested back then into 5.4:

Have these 2 check boxes:

* Always force installs when start installation

* Always force installs when exitting

You can then check either or both depending on what you are doing. Sound good?


I'm not sure I quite understand. If people want to exit without installs then wouldn't you just uncheck 'Force installs when exiting'? What exactly would a 'force installs when start installation' do? huh.gif
Kelsenellenelvian
'force installs when start installation' <-- This would ensure that the program would still be installed when the instalation process is started whether or not you have selected that entry for installation or not.
larciel
I have command error in Line 55, Char 2 of Installer.hta

happens at the last program is installing..

a quick look at WPI_log shows that every program has been installed fine. maybe this is because of Regional setting difference?
Kelsenellenelvian
What is the config entry for the last program? I want to track down this error.
zorphnog
QUOTE (Kelsenellenelvian @ Aug 10 2006, 04:44 AM) *
'force installs when start installation' <-- This would ensure that the program would still be installed when the instalation process is started whether or not you have selected that entry for installation or not.


Isn't this already implemented? Or are you saying that you want to be able to disable forced installs when starting installation? I guess for testing purposes it might be nice to be able to disable the forced installs on 'start installation'.
eagle47benny
Thanks Dynaletik,

The delay is 5 min (300 sec), and I've attached the useroptions and config scripts in case it's something there. They were created in v5.0, which still works with the same files. I get the error if it's started from RunOnceEx.cmd, or by running wpi.hta from within windows. If I copy the WPI folder to the desktop and run it from there I get the same error (with the URL modified apropriately). This was all done using VMWare Player 1.0.1 (with Deamon Tools 4.03 to mount the DVD image so I don't have to keep throwing away disks). That's probably way more info then you need, but hopefully some of it will be helpful.

Thanks again!
Dynaletik
Ok, I can reproduce the bug with 300 seconds. Your useroptions.js is not the reason. It is definitely a bug in the timer, just tested with 60, 70 and 300 seconds, but with 300 seconds the error in timer.js line 54 function tTimer comes up when the timer runs out.

EDIT: Solved by zorphnog.
zorphnog
There is a rounding error in the timer.js file that is causing the Timer_bar element width to become negative.

In timer.js (Line 54) replace:
CODE
document.getElementById("Timer_bar").style.width=Math.round(TimerWidth-Math.round((passed/startSecs)*TimerWidth))+"px";
with
CODE
document.getElementById("Timer_bar").style.width=Math.abs(TimerWidth-Math.floor((passed/startSecs)*TimerWidth))+"px";
Dynaletik
Ok thanks zorphnog, this fixes our bug. thumbup.gif
udaydand
how the dircopy works i want to copy one folder from dvd to sys drive
eagle47benny
Thanks a buch Dynaletik and zorphnog, That fixed it biggrin.gif
zorphnog
QUOTE (udaydand @ Aug 10 2006, 11:19 AM) *
how the dircopy works i want to copy one folder from dvd to sys drive


Dircopy usage:
CODE
dircopy [source] [destination]

In your case something like:
CODE
dircopy %cdrom%\folderName %systemdrive%\folderName

Where folderName is the name of the folder you want to copy.

Next time, please ask these types of questions in the general Windows Post-Install Wizard (WPI) forum. biggrin.gif
larciel
QUOTE (Kelsenellenelvian @ Aug 10 2006, 03:15 AM) *
What is the config entry for the last program? I want to track down this error.


This is the last three entries. Weird thing is the .reg entry below did not run correctly even though log says it was successful.

Thanks kel

CODE
Thursday, August 10, 2006 3:04:06 AM
   Program: theme-Logon_Natural
   UID: THEMELOGON_NATURAL
   Order: 000116
   Category: Themes-Logon
   Thursday, August 10, 2006 3:04:06 AM
   Reg Before Success (returned code 0): "RegEdit /S C:\theme\natural.reg"
   Thursday, August 10, 2006 3:04:06 AM
   Finished installation

-----

Thursday, August 10, 2006 3:04:07 AM
   Program: zBTS Finish
   UID: ZBTSFINISH
   Order: 000119
   Category: System Tools
   Thursday, August 10, 2006 3:06:27 AM
   cmd1 Success (returned code 0): "C:\DPsFnshr.exe"
   Thursday, August 10, 2006 3:06:27 AM
   Finished installation

-----

Thursday, August 10, 2006 3:06:28 AM
   Program: zFinishing Install
   UID: ZFINISHINGINSTALL
   Order: 000120
   Category: System Tools
   Thursday, August 10, 2006 3:06:33 AM
   cmd1 Success (returned code 0): "C:\none1.bat"
   Thursday, August 10, 2006 3:06:33 AM
   cmd2 Success (returned code 16): "F:\winapp\cmd2.cmd"
   Thursday, August 10, 2006 3:06:36 AM
   cmd3 Success (returned code 0): "F:\winapp\finish.cmd"
   Thursday, August 10, 2006 3:06:36 AM
   Finished installation
eagle47benny
The misc. tab in the options page is only visible when you are on the Interface tab. It disapears for the others (including itself if you click to it from the Interface tab).
zorphnog
QUOTE (eagle47benny @ Aug 10 2006, 02:23 PM) *
The misc. tab in the options page is only visible when you are on the Interface tab. It disapears for the others (including itself if you click to it from the Interface tab).

Hmm. I can't reproduce this on my system. What theme are you using? Is it v5.3 compliant?
eagle47benny
I would assume so, since I haven't done any themes yet, it was a freshly downloaded v5.3.
mritter
@zorphnoq, good catch on the timer bug. That was a weird one: only 300 caused it, 301 worked fine.



-----------------------------------



@udaydand: did the dircopy work for you? Not many people use the built-in command anymore so want to make sure they still work ok.
Eagle1
I have another error when using the command line of 'WPI.hta username 0'. I have also tried the new command line method, as well. I have added the fix shown above, but still have this error.

Here is the error:
Click to view attachment
larciel
i can confirm the error above as well. I've used 180 seconds. when timer hits 0 , that error occurs
Djé
QUOTE (g3o @ Aug 9 2006, 11:04 AM) *
The command line bug is still present unless fix 5 is applied from 5.2 buglist!


QUOTE (mritter @ Aug 9 2006, 07:48 PM) *
@g3o That bug is still there. We know. The problem is that it partially fixes it, but 100%. Dje and I are still looking at it.

What bug are you guys refering to?
The 5.3 command line parser just works fine here and has the correct line:
CODE
fullpath = fullpath.replace("file:///","").replace(/\//g,"\\\\");

3/// and then 4\\\\
zorphnog
QUOTE (Eagle1 @ Aug 10 2006, 11:49 PM) *
I have another error when using the command line of 'WPI.hta username 0'. I have also tried the new command line method, as well. I have added the fix shown above, but still have this error.

QUOTE (larciel @ Aug 11 2006, 01:38 AM) *
i can confirm the error above as well. I've used 180 seconds. when timer hits 0 , that error occurs

@larciel I couldn't replicate this bug with 180, but try the following fix.

@Eagle1 this is another bug in timer.js a division by zero error. Replacing the tTimer function with the following one should fix this.

CODE
function tTimer()
{
    position="timers.js";
    whatfunc="tTimer()";

    var txt="";

    if (startSecs>0)
    {
        if (Seconds==0)
            Seconds=1;

        txt = m+":"+ --Seconds;

        if (Seconds==0)
        {
            txt = m+":"+"0"+Seconds;
            m--;
            Seconds=60;
        }

        if (Seconds<10 && Seconds>-1)  
            txt = m+":"+"0"+Seconds;

        document.getElementById("TimerDisplay").innerHTML=txt;
        passed++;

        document.getElementById("Timer_bar").style.width=Math.abs(TimerWidth-Math.floor((passed/startSecs)*TimerWidth))+"px";

        if (!PlayAudioInWPI && (m==0 && Seconds<11))
            PlaySound(wpipath+"\\Themes\\"+Theme+"\\TimerSound.wav");
    }

    if ((Seconds==60 && m<0) || startSecs==0)
    {
        document.getElementById("TimerDisplay").innerHTML="0:00";
        document.getElementById("Timer_bar").width=0;
        Pause(0,250);

        stopInterval();

        checkInstall('timer');
    }
}



It should also be noted that a timeout of "0" actually takes one second to execute. This cannot be avoided though due to the way that configuration profiles and forced application installs are applied. Not a big deal, but in case anyone was wondering.
Eagle1
Thanks zorphnog,



That fixed it!



Eddie
mritter
The timer bug is deeper than the divide by zero. Your fix works, thank you, but does not prevent the problem from happening. You need to add 2 lines to main.js:

CODE
function main()
{
//  wpipath=WPIPath();   // Done in wpi.hta
    cddrv=FindCDRom();

    if (Seconds<1)                                         <-----  This line
        Seconds=1;                                         <----- This line
    startSecs=Seconds;


...........................
}

And you should start using the new cmd line args:

wpi.hta options=myoptions.js config=yourconfig.js check=thisone timer=30

The old method will be eliminated some time down the road.
Dynaletik
Thank you mritter. So do we need the fixed tTimer function AND the 2 lines in mian.js or just the 2 lines in main.js? I use both fixes now and it seems to work, I hope you thought it like that.
mritter
The main.js is the main fix, but do use both.
ThunderHK
Hello I'm French

I have a bug with WPI 5.3, i search on all the forum but i have not find the solution confused.gif

I use Virtual PC to simulate my cd iso, the installation operate correctly but when i push on "start installation" on WPI, the next windows appears :



Installer.hta is %cdrom%\%oem%\$1\WPI\Common and is copied on C:\WPI\Common on installation

Please help me, ThanX before
zorphnog
ThunderHK: The link to your picture is broken. Can you fix it so we can have a look? Or write out the message? Thanks.
ThunderHK
I fix the broken link , excuse-me blushing.gif
bvstaff
Hi,

I start using WPI.

Actually i migrate from the version 4.3 to version 5.3. biggrin.gif

When i use and "install order" it doesn't work no.gif ?

In the extract, wpipathapp is a new variable which i created to point on the parent folder of wpipath thumbup.gif

This is an extract of th ceonfig.js unsure.gif :
prog[pn]=['MS_VISIO_2003-STANDARD-SP2_EN_v2'];
desc[pn]=['Visio Office 2003 user license'];
uid[pn]=['MSVISIO2003STDSP2'];
dflt[pn]=['no'];
cat[pn]=['Office'];
forc[pn]=['no'];
gcond[pn]=['FileExists(\'%programfiles%\')'];
cmd1[pn]=['%wpipathapp%\\WPI_APPLI\\MS_VISIO_2003-STANDARD-SP2_EN_v2\\install.vbs'];
pn++;

prog[pn]=['ORACLE_ORACLE-CLIENT-PATCHSET_9-2-0-5_EN_v1'];
ordr[pn]=[999];
desc[pn]=['Patchset for oracle 9.2.0.1'];
uid[pn]=['ORACLEPATCHSET'];
dflt[pn]=['no'];
cat[pn]=['Applications'];
forc[pn]=['no'];
deps[pn]=['ORACLECLIENT'];
gcond[pn]=['FileExists(\'%programfiles%\')'];
cmd1[pn]=['%wpipathapp%\\WPI_APPLI\\ORACLE_ORACLE-CLIENT-PATCHSET_9-2-0-5_EN_v1\\install.vbs'];
pn++;

prog[pn]=['ORACLE_ORACLE-CLIENT_9_EN_v1'];
ordr[pn]=[1];
desc[pn]=['Oracle Client 9.0 version 9.2.0.1'];
uid[pn]=['ORACLECLIENT'];
dflt[pn]=['no'];
cat[pn]=['Applications'];
forc[pn]=['no'];
gcond[pn]=['FileExists(\'%programfiles%\')'];
cmd1[pn]=['%wpipathapp%\\WPI_APPLI\\ORACLE_ORACLE-CLIENT_9_EN_v1\\install.vbs'];
pn++;

prog[pn]=['SOFTWARE995_PDF995_EN_v1'];
desc[pn]=['PDF generator 100 License - HKG'];
uid[pn]=['PDF995'];
dflt[pn]=['yes'];
cat[pn]=['Applications'];
forc[pn]=['no'];
gcond[pn]=['FileExists(\'%programfiles%\')'];
cmd1[pn]=['%wpipathapp%\\WPI_APPLI\\SOFTWARE995_PDF995_EN_v1\\install.vbs'];
pn++;
bvstaff
Hi,

Is WPI running thru the network angel.gif ?

I tried with the version 4.3 i get a message error.

I tried with the version 5.3 too i get a message 'can't find the glossy them'

The path is like .\\<IP>\....\TOTALWPI\WPI.HTA realmad.gif

The folder TOTALWPI contains all files and fodler needed. rolleyes.gif

Actually i burn the same source on a DVD, it's running as well thumbup.gif .


Thanks per advance WPI experts.
zorphnog
@bvstaff Have you tried creating a batch file for mounting the network path and starting wpi as stated in the manual?

Per the manual:
CODE
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

SET SHARE=\\SERVER\SHARE

TITLE Running WPI from "!SHARE!"...

PUSHD "!SHARE!"
ECHO.Mounting "!SHARE!" to "!CD!"...

PUSHD WPI
ECHO.Starting WPI...
START /wait wpi.hta
POPD

ECHO.Unmounting network-drive...
POPD

With your setup, assuming TOTALWPI is in your shared folder:
CODE
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

SET SHARE=\\<IP>\<Path to Share folder>

TITLE Running WPI from "!SHARE!"...

PUSHD "!SHARE!"
ECHO.Mounting "!SHARE!" to "!CD!"...

PUSHD TOTALWPI
ECHO.Starting WPI...
START /wait wpi.hta
POPD

ECHO.Unmounting network-drive...
POPD

If TOTALWPI is your shared folder then remove "PUSHD TOTALWPI" and one of the "POPD" commands.
ThunderHK
QUOTE (ThunderHK @ Aug 17 2006, 06:13 PM) *
Hello I'm French

I have a bug with WPI 5.3, i search on all the forum but i have not find the solution confused.gif

I use Virtual PC to simulate my cd iso, the installation operate correctly but when i push on "start installation" on WPI, the next windows appears :



Installer.hta is %cdrom%\%oem%\$1\WPI\Common and is copied on C:\WPI\Common on installation

Please help me, ThanX before


Somebody answer me please ? welcome.gif tongue.gif
zorphnog
Sorry, I don't know French. Would you mind translating the error window?

Is it something about having to download the Installer.hta file?

Are you purposely trying to copy Installer.hta to the C: drive, or is it forcing you to do so?
ThunderHK
I translate this windows:



I test the 2 options but the bug is same ....
Major1206
System copies your wpifolder, because you putted it into the %oem% distribution folder. Everything in %oem%\$1\ is copyied to the %systemdrive%\ i.e. disk where you installed windows
ThunderHK
Ok, therefore do I have to make launch wpi since CD, without making it copy from the HD, it is well that?
pretender69
item name, unique id's
in 5.2 or earlier i believe when you edited the name of your application in wpi that they used to auto update the unique id's, this broken in 5.3 ?

also in previous versions you could edit boxes.js
CODE
if (DoGray)
        txt += ' disabled';

now if you do this it also removes the coloring of items already installed using file exists.
mritter
@pretender69: The unique ID was updated to NOT change when edit the Name field. It is created the first time or when delete it. This was done for a version update, 1.0 to 1.1. That would change the unique ID, which would then have to be changed in all Deps. By leaving it at the given name, anything dependant on it will not break. Example:

Name: .NET Framework 2.0
Unique ID: NETFRAMEWORK (version removed manually)

Then we update:

Name: .NET Framework 2.1
Unique ID: NETFRAMEWORK (would have changed to 2.1 and broken Deps)

========================================

The other issue, there is a new style class, chktxt, to along with txt and gtxt. These should be editting in the theme's .css file, not inside boxes.js. Try it there, post back if still not working and with more details.
mritter
@Avneet: The Force Installation On Exit issue is fixed. There was a bug brought on from the new code from Zorphnoq that, if an item is forced then it gets checked and disabled. Well, the installer would uncheck everything, then run through the list and re-check what is forced. BUT, if the item is disabled, as it is now with the new code, it was skipped, even though if was marked as forced.

Now when it goes to un-check everything, it first checks if marked as forced or not.

It should be working fine, like it used to.

@Zorphnoq: this was not your fault. It was always this way to handle cond[] and gcond[] states.
pretender69
what i mean is before when we removed that code in boxes.js.
is would still show the color of the installed item, but the check box is still clickable, not disabled.
would like to have the boxes still clickable even if installed, to still install say a .reg file, or patch.

this still possible ?
larciel
Kel, any updates on fix of this error?



thanks

*also, .reg file does not get applied when it's not companied by command1 line

CODE
Saturday, August 19, 2006 6:29:52 PM
   Program: theme-Logon_Skyview
   UID: THEMELOGON_SKYVIEW
   Order: 000118
   Category: Themes-Logon
   Saturday, August 19, 2006 6:29:52 PM
   Reg Before Success (returned code 0): "RegEdit /S C:\theme\skyview.reg"
   Saturday, August 19, 2006 6:29:52 PM
   Finished installation


I have to manually run the regtweak again to get it to work.
zorphnog
Solution for category uncheck bug.

In check.js:
Function setUnchecked
CODE
else
{
    var chkbox = document.getElementById("chkbox"+i);
    var lbl = document.getElementById('lbl'+i);

    if (chkbox==null)
        return;
    if (forc[i]!=null && forc[i]=='yes')       //<------------add this line
        return;                                //<------------add this line
    chkbox.checked=false;
    lbl.className='txt';
    tabs++;
    uncheckChildren(i);
    if (DisableOnDepsNotMet)
        disableChildren(i);
    if (useExclusions)
        checkExclusions(i);
    tabs--;
}

Function checkCategory
CODE
if (isCategory(thisChk)) //If category checkbox was checked
{
    thisCat = thisChk;
    
    for(i=1; cat[i] != null; i++)
    {
        if (cat[i] == thisCat)
        {
            if (state)
            {
                setChecked(i);
                checkDeps(i);
            }
            else
            {
//                setUnchecked(i);            //<--------remove the "//" at the begining
                checkDeps(i);
            }
        }
    }
}
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.