Simone d074cc7c07 chore: initial commit (extracted from Launchers monorepo)
Plugin: ns7zip v2.0.0
Architectures: x86-ansi, x86-unicode, amd64-unicode
License: LGPL-2.1-or-later
2026-04-29 14:07:51 +02:00

Nsis7z NSIS Plugin

Plugin NSIS per l'estrazione di archivi 7z, ZIP e NSIS


Versioni Disponibili

Versione 7-Zip Formati Note
19.00 7-Zip 19.00 7z, LZMA, XZ, Split Versione originale aggiornata
25.01 7-Zip 25.01 7z, ZIP, LZMA, XZ, Split, NSIS Con supporto NSIS archive
26.00 7-Zip 26.00 7z, ZIP, LZMA, XZ, Split, NSIS Consigliata

Architetture Supportate

Architettura Descrizione
x86-ansi 32-bit ANSI (legacy)
x86-unicode 32-bit Unicode
amd64-unicode 64-bit Unicode

Quick Start

!addplugindir "plugins\x86-unicode"

Section
  ; Estrazione semplice (7z, ZIP, NSIS)
  Nsis7z::Extract "$EXEDIR\data.7z"

  ; Con testo di progresso nella label
  Nsis7z::ExtractWithDetails "$EXEDIR\data.7z" "Installing %s..."

  ; Con callback per mostrare i file nella listbox
  GetFunctionAddress $0 MyExtractCallback
  Nsis7z::ExtractWithFileCallback "$EXEDIR\data.7z" $0
SectionEnd

Function MyExtractCallback
  Pop $0   ; completedSize
  Pop $1   ; totalSize
  Pop $2   ; fileName
  DetailPrint "$2"
FunctionEnd

Build Scripts

Script Versione Toolset
build_plugin_vs2022.py 19.00 VS2022 (v143)
build_plugin_vs2026.py 19.00 VS2026 (v145)
build_plugin_2501_vs2022.py 25.01 VS2022 (v143)
build_plugin_2501_vs2026.py 25.01 VS2026 (v145)
build_plugin_2600_vs2026.py 26.00 VS2026 (v145)

Compilazione

cd ns7zip

# Versione 26.00 (consigliata)
python build_plugin_2600_vs2026.py

# Versione 25.01
python build_plugin_2501_vs2026.py

# Versione 19.00
python build_plugin_vs2026.py

Struttura Repository

ns7zip/
├── build_plugin_vs2022.py       # Build 19.00 VS2022
├── build_plugin_vs2026.py       # Build 19.00 VS2026
├── build_plugin_2501_vs2022.py  # Build 25.01 VS2022
├── build_plugin_2501_vs2026.py  # Build 25.01 VS2026
├── build_plugin_2600_vs2026.py  # Build 26.00 VS2026
├── rebuild_nsis7z1900-src.ps1   # Ricostruisce sorgenti 19.00
├── 7zip-19.00/                  # 7-Zip 19.00 modificato
├── 7zip-25.01/                  # 7-Zip 25.01 modificato (ZIP + NSIS handler)
└── 7zip-26.00/                  # 7-Zip 26.00 modificato (ZIP + NSIS handler)

Modifiche rispetto all'originale

NSIS Archive Handler (25.01, 26.00)

Aggiunto supporto per estrarre archivi .exe creati con NSIS (non presente nel plugin originale):

  • Archive\Nsis\NsisHandler.cpp/h
  • Archive\Nsis\NsisIn.cpp/h
  • Archive\Nsis\NsisDecode.cpp/h
  • Archive\Nsis\NsisRegister.cpp
  • Compress\BZip2Decoder.cpp/h (richiesto da NsisDecode)
  • Compress\BZip2Crc.cpp

Bug Fix (25.01, 26.00)

  • Divide-by-zero: aggiunto guard if (totalSize == 0) return 0 in GetPercentComplete
  • ExtractWithFileCallback: callback NSIS triggerata solo al cambio filename (evita crash con totalSize = UINT64_MAX alla prima chiamata SetTotal)

License

  • 7-Zip: LGPL 2.1 + BSD 3-clause
  • Plugin NSIS: Afrow UK

Credits

  • Igor Pavlov (7-Zip)
  • Afrow UK (Plugin originale)
  • Simone (Supporto x64, VS2022/VS2026, ZIP, NSIS handler, ExtractWithFileCallback)
S
Description
NSIS plugin for 7z, ZIP, NSIS archive extraction
Readme MIT 20 MiB
v2.3.1 Latest
2026-05-04 22:12:28 +00:00
Languages
C++ 79.7%
C 14.6%
Python 3.9%
Makefile 0.9%
Assembly 0.6%
Other 0.2%