|
#1
|
||||
|
||||
|
ISRarEx - Advanced RAR Extraction API for Inno Setup
====================================== Code:
> Overview: ISRarEx is a high-performance extraction library meticulously crafted for Inno Setup. It provides a robust interface for handling RAR archives, offering advanced progress tracking, multi-part archive support, and precise extraction metrics that standard tools often lack. > Specifications: - Version : v0.1 - Author : BLACKFIRE69 - Build : 6997A400 - Compatibility : Inno Setup v6.0 or later (Required) - License : Proprietary (See LICENSE file for details) - Tested Engine : WinRAR v7.20 (Latest) Code:
> Key Features:
- Flexible Extraction Modes: Full support for Normal archives,
Splitted (multi-volume) archives, and Combined sets.
- Advanced Progress Tracking: Real-time metrics for Overall Progress,
Current Disk Progress, and Extracted/Total File Counts.
- Performance Metrics: Accurate Current and Average Speed (MB/s).
- Time Management: Intelligent "Time Remaining" and "Elapsed Time"
tracking with three customizable display formats.
- Process Control: Built-in functions to Suspend, Resume, or Stop
the extraction process safely.
- UI Stability: Includes "Calc Accuracy" reduction logic to prevent
erratic jumping in speed and ETA displays.
- Localization: Easily switch between languages using external .ini
configuration files.
Code:
> Supported File Structures: ISRarEx supports complex distribution layouts, including nested volumes and mixed archive types: [ROOT] ├── data1.rar ├── Disks/ │ ├── Disk1/ │ │ ├── Sonic 2.part01.rar │ │ └── Sonic 2.part02.rar │ └── Disk2/ │ ├── Sonic 2.part03.rar │ └── Sonic 2.part04.rar ├── data3.rar └── Setup.exe > Distribution Files: - ISRarEx.dll — Core API Library. - UnRAR_32.dll — UnRAR engine integration. - ISRarEx.iss — Header for Inno Setup. - English.ini / Russian.ini — Language configuration files. * Example 1: Normal Archives Code:
{Code]
#include "ISRarEx.iss"
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
{ - ADDING DISKS - }
repeat
if not AddArchiveEntry('data1.rar') then Break;
if not AddArchiveEntry('data2.rar') then Break;
if not AddArchiveEntry('data3.rar') then Break;
until true;
{ - INITIALIZE & EXTRACT - }
if ISRarExInitEx(2, @ProgressCallbackEx) then
begin
repeat
for i := 1 to ISRarExDiskCount do
begin
if not ISRarExExtract(i) then Break;
end;
until true;
ISRarExStop;
end;
end;
end;
Code:
{Code]
#include "ISRarEx.iss"
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
{ - ADDING DISKS - }
repeat
if not AddArchiveEntry('data1.rar') then Break;
if not AddArchiveEntry('Sonic 2.part01.rar') then Break;
if not AddArchiveEntry('data3.rar') then Break;
until true;
{ - INITIALIZE & EXTRACT - }
if ISRarExInitEx(2, @ProgressCallbackEx) then
begin
repeat
for i := 1 to ISRarExDiskCount do
begin
if not ISRarExExtract(i) then Break;
end;
until true;
ISRarExStop;
end;
end;
end;
Last edited by BLACKFIRE69; 19-04-2026 at 16:09. |
| The Following 9 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (08-04-2026), Cesar82 (08-04-2026), Dunnowho69 (08-04-2026), Ele (14-04-2026), Gehrman (05-05-2026), GTX590 (21-04-2026), Razor12911 (09-04-2026), ScOOt3r (09-04-2026), Valtus (27-04-2026) | ||
| Sponsored Links |
|
#2
|
||||
|
||||
|
ISRarEx v0.1 — Update 01 (LibOnly)
* Bug fixes only. No API changes. Code:
- Fixed: `ISRarExReduceCalcAccuracy` did not perform as expected in v0.1 due to an internal architectural change introduced in this version. This has been corrected and the function now behaves as intended again. - Fixed: `ISRarExCallbackInterval` silently ignored some values, causing progress updates to appear sluggish or unresponsive regardless of the configured interval. The valid input range has been restored. - Fixed: State inconsistency where accuracy reduction settings could behave unpredictably across multiple init calls in the same session. Code:
- Drop-in library replacement. No script-side changes required. Last edited by BLACKFIRE69; 19-04-2026 at 16:07. |
| The Following 5 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (19-04-2026), Cesar82 (19-04-2026), Dunnowho69 (20-04-2026), ScOOt3r (19-04-2026), Valtus (27-04-2026) | ||
|
#3
|
|||
|
|||
|
Is it possible to integrate this template into Inno Setup together with your RAR script?
When installing large games, users often may not have enough free disk space. I need a feature that deletes already extracted data/archive parts in real time during extraction, in order to reduce the required free space. https://github.com/auto-Dog/delete_when_unzip |
![]() |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| BlackBox v2 | y_thelastknight | Conversion Tutorials | 567 | 11-03-2025 07:16 |
| Advanced installer or inno setup | demon964 | Conversion Tutorials | 0 | 12-11-2024 04:28 |
| Useful Dll for Inno Setup users | peterf1999 | Conversion Tutorials | 88 | 01-12-2017 16:00 |
| Preview: Conversion Tool for Advanced Setup Creator | Razor12911 | Conversion Tutorials | 6 | 10-05-2017 00:30 |
| Converter Lite for Advanced Setup Creator | Razor12911 | Conversion Tutorials | 3 | 11-01-2017 09:54 |