PDA

View Full Version : Percentage Problem with ISExec


Prince4
07-07-2016, 00:52
Guys another problem i'm facing right here A friend gave me fix for the Batch Execution that i needed for my inno Script and the good thing is that the Execution is working and the .bat also finishes its work, But i don't know why i'm facing this stupid problem :

//Setup-1.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 1 To Start Installing...', ExpandConstant('{src}'),'Setup-1.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-1.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

//function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString; Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Rebuild.bat'), '', ExpandConstant('{app}'), 'My comments',false) then break;

//Setup-2.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 2 To Continue Installation...', ExpandConstant('{src}'),'Setup-2.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-2.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

Now you must note that the ISExec code doesn't have any Pct specified,
But no matter why does the Progress instantly jumps to 100% from 45%

Also you can check out my SShots...

truerepacks
07-07-2016, 01:19
first thing why don't u give any percentage to ISEXEC

>>the reason for the problem
Actually 0 pct doesn't mean that isdone will give 0 pct to the batch file its meaning is little bit different

the Fix
1.In isDoneinit, sset records file name to ExpandConstant('{src}\records.inf')
2.just give 0 pct to every task and run the whole installation process

or simply according to ur bins

//Setup-1.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 1 To Start Installing...', ExpandConstant('{src}'),'Setup-1.Rpk') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Setup-1.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

//function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString; Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Rebuild.bat'), '', ExpandConstant('{app}'), 'My comments',false) then break;

//Setup-2.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 2 To Continue Installation...', ExpandConstant('{src}'),'Setup-2.Rpk') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Setup-2.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;


ur percentage will go over 300 % in first run
bt after that it will produce a records.inf file in ur src dir and after that u will get the perfect progressbar

>> and if u don't want to give pct to bat file then put 1 instead of 0 in pct section and 49 to the another bin file
>>and one more tip if ur using reflate then try to check the crc. I think that will never gonna match even if u r using razor's isdone compatible reflate



and one more thing rohini isn't in Delhi at all

Carldric Clement
07-07-2016, 08:23
Guys another problem i'm facing right here A friend gave me fix for the Batch Execution that i needed for my inno Script and the good thing is that the Execution is working and the .bat also finishes its work, But i don't know why i'm facing this stupid problem :

//Setup-1.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 1 To Start Installing...', ExpandConstant('{src}'),'Setup-1.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-1.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

//function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString; Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Rebuild.bat'), '', ExpandConstant('{app}'), 'My comments',false) then break;

//Setup-2.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 2 To Continue Installation...', ExpandConstant('{src}'),'Setup-2.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-2.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

Now you must note that the ISExec code doesn't have any Pct specified,
But no matter why does the Progress instantly jumps to 100% from 45%

Also you can check out my SShots...

Try this code:

procedure CurStepChanged(CurStep: TSetupStep);
var
i, MyRepackNumber: integer;
begin
i:= 1; // Don't touch this.
MyRepackNumber:= 3; // How many your repack games...
WizardForm.ProgressGauge.Position:=0;
WizardForm.ProgressGauge.Max:=0;
repeat
WizardForm.ProgressGauge.Max:= WizardForm.ProgressGauge.Max + 1000;
i:= i + 1;
until i = MyRepackNumber;
ISDoneError:= false;
if ISDoneInit(ExpandConstant('{tmp}\records.inf'), $F777, 0,0,0, MainForm.Handle, 512, @ProgressCallback) then
begin
repeat
ChangeLanguage('English');
if not SrepInit('',512,0) then ISDoneError := True;
if not PrecompInit('',128,0) then ISDoneError := True;
if not FileSearchInit(true) then ISDoneError := True;

if not ShowChangeDiskWindow ('Please Locate Part 1 To Start Installing...', ExpandConstant('{src}'),'Setup-1.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-1.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Rebuild.bat'), '', ExpandConstant('{app}'), 'My comments',false) then break;

if not ShowChangeDiskWindow ('Please Locate Part 2 To Continue Installation...', ExpandConstant('{src}'),'Setup-2.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-2.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

until true;
ISDoneStop;
end;
end;

Prince4
07-07-2016, 22:43
first thing why don't u give any percentage to ISEXEC

>>the reason for the problem
Actually 0 pct doesn't mean that isdone will give 0 pct to the batch file its meaning is little bit different

the Fix
1.In isDoneinit, sset records file name to ExpandConstant('{src}\records.inf')
2.just give 0 pct to every task and run the whole installation process

or simply according to ur bins

//Setup-1.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 1 To Start Installing...', ExpandConstant('{src}'),'Setup-1.Rpk') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Setup-1.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

//function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString; Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Rebuild.bat'), '', ExpandConstant('{app}'), 'My comments',false) then break;

//Setup-2.Rpk (4.75 GB) --> [8.37 GB]
if not ShowChangeDiskWindow ('Please Locate Part 2 To Continue Installation...', ExpandConstant('{src}'),'Setup-2.Rpk') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Setup-2.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;


ur percentage will go over 300 % in first run
bt after that it will produce a records.inf file in ur src dir and after that u will get the perfect progressbar

>> and if u don't want to give pct to bat file then put 1 instead of 0 in pct section and 49 to the another bin file
>>and one more tip if ur using reflate then try to check the crc. I think that will never gonna match even if u r using razor's isdone compatible reflate



and one more thing rohini isn't in Delhi at all

Okay i didn't knew about Records.inf although i've seen it in many Repacks
and yeah i've also tried to add percentage like :
Setup-1.Rpk = 50
ISExec = 10
Setup-2.Rpk = 40


But it was all the same i'll try this in few hours..
Thanks for the A!

And yeah one more thing why do you think Rohini isn't in Delhi?

Prince4
07-07-2016, 22:46
Try this code:

procedure CurStepChanged(CurStep: TSetupStep);
var
i, MyRepackNumber: integer;
begin
i:= 1; // Don't touch this.
MyRepackNumber:= 3; // How many your repack games...
WizardForm.ProgressGauge.Position:=0;
WizardForm.ProgressGauge.Max:=0;
repeat
WizardForm.ProgressGauge.Max:= WizardForm.ProgressGauge.Max + 1000;
i:= i + 1;
until i = MyRepackNumber;
ISDoneError:= false;
if ISDoneInit(ExpandConstant('{tmp}\records.inf'), $F777, 0,0,0, MainForm.Handle, 512, @ProgressCallback) then
begin
repeat
ChangeLanguage('English');
if not SrepInit('',512,0) then ISDoneError := True;
if not PrecompInit('',128,0) then ISDoneError := True;
if not FileSearchInit(true) then ISDoneError := True;

if not ShowChangeDiskWindow ('Please Locate Part 1 To Start Installing...', ExpandConstant('{src}'),'Setup-1.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-1.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

if not ISExec ( 0, 0, 0, ExpandConstant('{app}\Rebuild.bat'), '', ExpandConstant('{app}'), 'My comments',false) then break;

if not ShowChangeDiskWindow ('Please Locate Part 2 To Continue Installation...', ExpandConstant('{src}'),'Setup-2.Rpk') then break;
if not ISArcExtract ( 0, 50, ExpandConstant('{src}\Setup-2.Rpk'), ExpandConstant('{app}'), '', false, '{#PassWord}', ExpandConstant('{tmp}\ISDone_Params_ExTended.ini') , ExpandConstant('{app}'),False) then break;

until true;
ISDoneStop;
end;
end;


Okay i've got it but how do i Get to Generate a "Records.inf" ?
Thanks

felice2011
07-07-2016, 23:38
@Prince..Or you write it manually or automatically created during compression process with any utility that you can find on this forum.

Prince4
07-07-2016, 23:52
@Prince..Or you write it manually or automatically created during compression process with any utility that you can find on this forum.

I don't get any Records.inf during compression process and how do i write it manually?

felice2011
08-07-2016, 00:51
Sorry I understood the configuration setting "*.ini"...the setup information file "*.inf" if you use a precompiled installation should be included in one of the installation folder, and in the compiler have a line like this.

ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, 512, @ProgressCallback) then begin
repeat
ChangeLanguage('english');
if not SrepInit('',512,0) then break;
if not PrecompInit('',128,PCFVer) then break;
if not FileSearchInit(true) then break;
#include 'Archives.ini'
ISDoneError:=false;
until true;
ISDoneStop;
end;

Prince4
08-07-2016, 01:34
I have created a custom script from Mr316dx's BlackBox Script.
So i just have to add that code with my script then it'll generate the Records.inf.
Okay i'll try.

truerepacks
08-07-2016, 03:01
I have created a custom script from Mr316dx's BlackBox Script.
So i just have to add that code with my script then it'll generate the Records.inf.
Okay i'll try.
yeah it will generate a records.inf file in ur installation directory if set the {src}\records.inf in isdoneint

actully it is nothing bt the percentage of progrss allotted by isdone itself basis on the time taken to complete the specific task and thats why i said the perfect progressbar

and about rohini i live jst 50 km away from it, in delhi

Prince4
08-07-2016, 03:17
yeah it will generate a records.inf file in ur installation directory if set the {src}\records.inf in isdoneint

actully it is nothing bt the percentage of progrss allotted by isdone itself basis on the time taken to complete the specific task and thats why i said the perfect progressbar

and about rohini i live jst 50 km away from it, in delhi

So where you from (Maybe this is not the correct place to ask, Why don't we be Friends at FB :https://www.facebook.com/prince.sharma.3110)

truerepacks
08-07-2016, 03:51
So where you from (Maybe this is not the correct place to ask, Why don't we be Friends at FB :https://www.facebook.com/prince.sharma.3110)

suprisingly my real name is also Prince........Prince Gupta

Carldric Clement
09-07-2016, 07:11
Okay i've got it but how do i Get to Generate a "Records.inf" ?
Thanks

You don't need use records.inf. Try to use my code if works on your installer scripts.
:D:p

truerepacks
09-07-2016, 07:38
You don't need use records.inf. Try to use my code if works on your installer scripts.
:D:p

actully he need it i had a talk with him and i probably solved his issues.

Prince4
15-07-2016, 06:42
Yeah This one is Solved!
Thanks brothers.. For your Time, i really appreicate it :D