Archive: Using CABARC.EXE for large installer in background and show progressbar.


Using CABARC.EXE (in background ) for large installer and show progressbar.
Hello,

I want to create a large(rather huge) installer.
I have gone through the "CabSetup.dll" post and found a suitable hint, however this time I have the following requirements.

1. I am planning to use a DVD(4.5-5GB) and my files will be distributed using a single DVD.
2. I have created .cab files for all dependent files and want to extract these files using "cabarc.exe" from microsoft.
2a. While extracting this i want the user to see a nice progressbar (see attachment).
2b. Want to delete the cab files post extraction
2c. see the error(if any) of "cabarc.exe" stright on the screen.

Can you please suggest, solution for these?
I use ModernUI.

NBaua


Create a custom page using NSDialogs, place two progressbars on it - you can control these further with nsdialogs.

Delete the CAB files? They're on the DVD, no? If you are copying them to the HDD first, then Delete <file> should be fine. Use ExecWait so that your NSIS script code only continues after cabarc.exe is done.

ExecWait also takes a user variable ($0, etc.) to get the output from the application launched. The output is typically an error code, so you may have to check what error codes cabarc.exe uses for various error messages and display them in a more user-friendly manner. That information may be in the CAB SDK, but I wouldn't know :)
Alternatively, use one of the plugins that can log the information you'd otherwise see in STDOUT (what you see in a DOS/Console window) to a file, and read from that. E.g. nsExec, ExecDos


Hi Animaether,

Thanks for your reply,

Mean while you posted here, I updated my code to nsExec.
It did wait for the CABARC.exe and i get a nice log too.

However I do not have expertise with the NSDialogs yet.
Can you show me some sample script, which I can easily incorporate in my code?

Thanks pal.

-NBaua

PS - --
Yes, I managed to run the cab files from DVD itself.
I was under impression of copying them first, thanks again for bringing it to my notice once again.


hmm.. I'd give you example code, except it looks like nsdialogs crashes on this machine.

Edit: Ah, whoops. The online docs forgot '/NOUNLOAD', so my template copy/paste crashed.

In addition, the progress bar is not officially in yet - looks like kichik is working on that.

Think you'd have to use InstallOptionsEx and crazy code. hrm. I swear there was a better way to do this.. or using LoadingBar/Nxs/etc.


The online docs are for the next version. I was actually planning on having all the versions there and having Docs point to the latest version, rather than the future version. I also want to add some kind of watermarking on everything there so people know it's for a specific version. I already have all the documentation compiled as HTML, along with all the examples for all the versions since 2.07. I just need to get to implementing the rest and uploading it. If someone wants to help with that, it'd be great.


Add folder to Cab
HI All,

I am creating a cab component for My ActiveX Control. In that cab component I am adding few installer that needs to run on the client browser at the time of requesting for ActiveX control. For One installer I need Complete folder in the Cab. Could some one help me out in adding a complete folder to Cab. I tried using Cabarc tool. But i could Not find any solution.

thanks in advance,
Renu