Hi Guys,
I'm writing a small installation / registration that will actually register the user using http forms, however, in the first starting step I want to start downloading the main package which is around 20MB and install this in the last step as soon as the file is available.
however inetc::get is being runned as modal and it doesn't allow the rest of the code to run.
1. how to let the rest of the script run while inetc::get is downloading?
2. how to get the download status from inetc and display in the banner area so user know that there is a main packaging coming at what speed?
Cheers
inetc::get
12 posts
The plug-in does not have asynchronous support and even if it were added where would you display the banner? Are your steps custom pages or is all this going on on the instfiles page?
Stu
Stu
I can put the process anywhere,
even if we can't place it in banner, it is still okay,
the only important thing is that the download runs in the backgroun upon
launch.
I'm using Pages for the registration process.
Cheers
even if we can't place it in banner, it is still okay,
the only important thing is that the download runs in the backgroun upon
launch.
I'm using Pages for the registration process.
Cheers
You can request the feature be added (Takhir is the author) but for now you could use wget.exe to do the download. You can use ExecDos::Exec with the /ASYNC flag and then ExecDos::Wait just before you have to run the downloaded file.
Stu
Stu
wget is already too large 🙁
439KB is too large? What about after it's compressed in the installer? (I'm not going to check the file size then). Make sure you use /solid lzma.
Stu
Stu
I wonder how large a separate NSIS installer with inetc with a single purpose (download data from a given location (provided on the command line, perhaps)) would be - could certainly execute that in the background (you'd still get no feedback on progress, though).
That'd just be wasting more space and at the end of the day you'd still have to extract wget.exe to run it. I don't see the problem with wget's size but another option is to use a VBS to do it (search Google).
Stu
Stu
o_OOriginally Posted by Afrow UK View PostThat'd just be wasting more space and at the end of the day you'd still have to extract wget.exe to run it.
Either I missed something, or maybe you misunderstood 🙂
I wasn't suggesting a separate installer that calls wget.exe - I was suggesting a separate installer that calls inetc; replacing wget.exe altogether.
The overhead from that would be the size of a bare installer (31.8k - not counting the size of inetc as that's what he's already using; including inetc.dll: 40.9k) + some code space if he made it command line-driven, rather than hardcoded URIs and conditions.
That would still be less than including wget with any compression (/solid lzma gives 152.6k)
neither do I - but if for whatever reason it is a concern, the inetc-in-separate-installer route should work, no?Originally Posted by Afrow UK View PostI don't see the problem with wget's size
( as would the VBS route, which would probably be even smaller, yes )
Ah sorry yes I misunderstood, or rather I didn't think of that 🙂
Stu
Stu
Hi guys,
Thanks for the response,
I managed to do it by making another installer and using inetload then calling it with exedos /async
to run it in the background. the only thing i need to do is to check the installer file size and make a timer in main installer to check the downloaded size and compare with original size to draw a process bar.
I'm not sure how to check file size a file over web?
any idea?
Regards
Thanks for the response,
I managed to do it by making another installer and using inetload then calling it with exedos /async
to run it in the background. the only thing i need to do is to check the installer file size and make a timer in main installer to check the downloaded size and compare with original size to draw a process bar.
I'm not sure how to check file size a file over web?
any idea?
Regards
You should use inetc rather than inetload (inetc supersedes it). inetc has a ::head function which you can use to get the headers for your file. The headers will contain the file size if the server provides it.
Stu
Stu