Inno Setup 6
Revision History

Copyright © 1997-2025 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2025 Martijn Laan. All rights reserved.
For conditions of distribution and use, see LICENSE.TXT.

Want to be notified by e-mail of new Inno Setup releases? Subscribe to the Inno Setup Mailing List!

6.4.2 (2025-03-12)

- Added `[Setup]` section directive `CloseApplicationsFilterExcludes`.
- Inno Setup is now built using Delphi 12.1 Athens instead of Delphi 11.3 Alexandria.
- Inno Setup is now signed using a new code signing certificate. The publisher name on this new certificate, Pyrsys B.V., is a company owned by Inno Setup co-developer Martijn Laan.

6.4.1 (2025-02-12)

Compiler IDE changes

- Added mouseover tooltips for all Pascal Scripting support functions and class members showing their prototype. Always shows all classes' members instead of just those of the current object's class.
- Autocompletion lists now use the same font as the editor.
- Fix: When the IDE was started for the first time on a system with a DPI setting over 100%, the editor's initial font size was larger than expected.

Other changes

- {reg:...} constants can now also embed REG_DWORD-type registry values.
- Fix: In 6.4.0, using "Shift+" in a `HotKey` parameter in the [Icons] section didn't work and required "Shift" instead, so for example "Ctrl+ShiftM" instead of "Ctrl+Shift+M".
- Fix: In 6.4.0, a custom form shown using `[Code]` didn't have a taskbar button if Setup's wizard was not visible at the time.
- Added official Arabic translation.
- Some minor tweaks and improvements.

6.4.0 (2025-01-09)

Compiler IDE changes

Updated the Scintilla editor component used by the Compiler IDE to the latest version.

Multiple selection editing has been improved:

- Added new Add Next Occurrence menu item to the Edit menu to add the next occurrence of the current word or selected text as an additional selection (Shift+Alt+. or Ctrl+D, see below).
- Added new Select All Occurrences menu item to the Edit menu to select all occurrences of the current word or selected text (Shift+Alt+; or Ctrl+Shift+L).
- Added new Select All Find Matches menu item to the Edit menu to select all matches of the last find text (Alt+Enter).
  Additionally, the Find (Ctrl+F) and Replace (Ctrl+H) dialogs now both support being closed by Alt+Enter to directly select all matches.
- Added shortcuts to add a cursor or selection up or down (Ctrl+Alt+Up and Ctrl+Alt+Down). For multi-line selections this extends the selection up or down and never shrinks.
- Added shortcut to add cursors to line ends (Shift+Alt+I). Behaves the same as in Visual Studio Code, so for example does nothing if all selections are empty.
- Added shortcuts to add a word or line as an additional selection (Ctrl+Double Click and Ctrl+Triple Click or Alt+Double Click and Alt+Triple Click).
- Added shortcut to remove a selection by clicking it (Ctrl+Click or Alt+Click).
- Multiple selection now works over Left, Right, Up, Down, Home and End navigation and selection commands.
- Multiple selection now works over word and line deletion commands, and line end insertion.
- Multiple selection now works better with Copy and Paste commands.
- Left, Right, etc. navigation with rectangular selection is now allowed.
- The Find and Replace dialogs and the tools from the Tools menu which generate script text now all work better with multiple selections present.

Other editor changes:

- Added support for Visual Studio Code-style editor shortcuts, like Ctrl+D to Add Next Occurrence, Ctrl+Shift+K to delete a line and Alt+Click to add an additional cursor or remove a selection.
  To activate this use the Options menu item in the Tools menu to set the new Keys option in the Editor group to Visual Studio Code.
  The updated Compiler IDE Keyboard And Mouse Commands help topic lists all differences with the classic keyboard and mouse shortcuts.
- Only if Visual Studio Code-style editor shortcuts have been activated: Added shortcuts to copy line down (Shift+Alt+Down) and to indent or unindent lines (Ctrl+] and Ctrl+[).
- Added parameter hints for all Pascal Scripting support functions for quick reference to the function's parameter names, types, and order. Parameter hints can be invoked manually by pressing Ctrl+Shift+Space or automatically by using the new Invoke parameter hints automatically option which is enabled by default.
- Added autocompletion support for all Pascal Scripting support functions, types, constants, etcetera. Existing option Invoke autocompletion automatically controls whether the autocompletion suggestions appear automatically or only when invoked manually by pressing Ctrl+Space or Ctrl+I.
- Added parameter hints and autocompletion support for all Pascal Scripting support class members and properties. Both always show all classes' members and properties instead of just those of the current object's class.
- Added autocompletion support for all Pascal Scripting event function parameters. Always shows all parameters instead of just those of the current event function.
- Added autocompletion support for the [Messages] section.
- Improved autocompletion support for all Flags parameters: now works for multiple flags instead of for the first only.
- Added new Enable section folding option which allows you to temporarily hide sections while editing by clicking the new minus or plus icons in the editor's gutter or by using the new keyboard shortcuts (Ctrl+Shift+[ to fold and Ctrl+Shift+] to unfold) or menu items. Enabled by default.
- The editor's gutter now shows change history to keep track of saved and unsaved modifications. Always enabled.
- The editor's font now defaults to Consolas if available, consistent with most other modern editors.
- The editor can now be scrolled horizontally instead of vertically by holding the Shift key while rotating the mouse wheel. Horizontal scroll wheels are now also supported.
- Cut (Ctrl+X or Shift+Delete) and Copy (Ctrl+C or Ctrl+Insert) now cut or copy the entire line if there's no selection, consistent with most other modern editors.
- Added new shortcuts to move selected lines up or down (Alt+Up and Alt+Down).
- Added new shortcut and menu item to the Edit menu to toggle line comment (Ctrl+/).
- Added new shortcut and menu item to the Edit menu to go to matching brace (Ctrl+Shift+\).
- Moved the Word Wrap option to the View menu and added a shortcut for it (Alt+Z).
- Added a right-click popup menu to the editor's gutter column for breakpoints.
- Added dark mode support to autocompletion lists and also added a minimum width.
- Added new Show whitespace option. Disabled by default.
- Improved brace highlighting.
- Fixed an issue when the Auto indent mode and Allow cursor to move beyond end of lines options are both enabled.

Other Compiler IDE changes:

- Shortcuts Alt+Left and Alt+Right now always navigate back and forward even if Visual Studio-style menu shortcuts have been activated.
  Because of this Alt+Right can no longer be used to initiate auto complete, instead the existing Ctrl+Space or Ctrl+I alternatives must be used.
- Moved the list of recently opened files into a new Open Recent submenu of the Files menu.
- Added new Use Regular Expressions option to the Edit menu to enable or disable the use of regular expressions for all find and replace operations and added a shortcut for it (Ctrl+Alt+R or Alt+R). Also added a small panel to the statusbar to indicate the current state.
- The Find and Replace dialogs now support using Shift+Enter to temporarily search in the opposite direction.
- Added shortcuts to select a tab (Ctrl+1 through Ctrl+9).
- Added alternative shortcut for the Compile menu item in the Build menu (Shift+F9 or F7).
- Added shortcut to the Options menu item in the Tools menu (Ctrl+,).
- Removed the length limitation when entering a Sign Tool command and increased control height.
- Added a banner which is displayed to each user after each update and links to this revision history.
- Enabled dark mode support for the menus on Windows 11 Version 24H2 (2024 Update).

Other changes

- Updated the LZMA SDK used by Inno Setup to the latest version, increasing the speed of LZMA and LZMA2 compression (by 10% in a test with default settings) without changing the compression ratio. Compression memory requirements have increased by about 4%. This also made it possible to add support for extracting 7-Zip archives, see below.
- Updated the encryption algorithm and key derivation function used by Inno Setup to XChaCha20 and PBKDF2-HMAC-SHA256 respectively, increasing security. This code is built-in: the separate ISCrypt.dll "encryption module" is no longer used and will be automatically deleted when you update.
- Added `[Setup]` section directive `EncryptionKeyDerivation` to change the number of PBKDF2-HMAC-SHA256 iterations to use from the default of 200000 to another value.
- Replaced all remaining use of MD5 and SHA-1 hashes with SHA-256 hashes, without removing the MD5 and SHA-1 Pascal Scripting and ISPP support functions.
- At long last, Setup's wizard window now shows a thumbnail image on its taskbar button, and animates correctly when minimized and restored. As part of this work, support for the long-deprecated `[Setup]` section directive `WindowVisible`, which was used to enable a 1990s-style blue gradient background behind the wizard window, has been dropped. For the same reason Pascal Scripting support object `MainForm` has been removed.
- The aspect ratio of Setup's large and small wizard images (as specified by `WizardImageFile` and `WizardSmallImageFile`) is now maintained when the window is scaled. Previously, depending on the font and font size used, they could have appeared horizontally stretched or squished.
- The size of the small wizard image area has been extended to 58×58 (at standard DPI with the default font). Previous versions used a non-square 55×58 size, which made the default image look slightly stretched.
- When disk spanning is enabled and Setup cannot find the needed disk slice file (e.g., `setup-2.bin`) in the source directory, it no longer automatically searches for it in a directory named `DISKx` one level up, where `x` is the disk number. Though consistent with old installers from the 16-bit era, this behavior wasn't documented.
- The New Script Wizard now sets `UninstallDisplayIcon` when an .exe is chosen as the main executable file.
- Merged the Inno Setup Preprocessor documentation into the main documentation instead of being separate.
- Added a dark mode version of the documentation, automatically used by the Compiler IDE if a dark theme is chosen.
- Pascal Scripting changes:
  - Added new `Extract7ZipArchive` support function to extract a 7-Zip archive, based on the "7z ANSI-C Decoder" from the LZMA SDK by Igor Pavlov. See the new help topic for information about its limitations.
    Added new `CreateExtractionPage` support function to easily show the extraction progress to the user.
  - Added new `ExecAndCaptureOutput` support function to execute a program or batch file and capture its stdout and stderr outputs separately.
  - Added new `StringJoin`, `StringSplit`, and `StringSplitEx` support functions.
  - Output logging now raises an exception if there was an error setting up output redirection (which should be very rare). The PowerShell.iss example script has been updated to catch the exception.
  - Added new `NewFolderName` property to support class `TInputDirWizardPage` update the initial value passed to `CreateInputDirPage`.
  - Added new `PopupMode` and `PopupParent` properties to support class `TForm`.
  - Documented support functions `VarArrayGet` and `VarArraySet` which were already available but not documented.
  - Renamed the `FileCopy` support function to `CopyFile`. The old name is still supported, but it is recommended to update your scripts to the new name and the compiler will issue a warning if you don't.
  - Fixed support function `TStream.CopyFrom` by adding a `BufferSize` parameter which was required but missing. Using `$100000` as the value is recommended.
  - Condensed the logging of DLL function imports.
  - Added new `Debugging` support function.
- ISPP change: Added support functions `GetSHA256OfFile`, `GetSHA256OfString`, and `GetSHA256OfUnicodeString`.
- Inno Setup's Delphi source code has been reorganized to use unit scope names and additionally various units have been renamed for clarity. This makes it a lot easier to get started with working with the Inno Setup source code and making contributions, even with the free Delphi Community Edition.
- Added official Swedish and Tamil translations.
- Various tweaks and improvements.

Contributions via GitHub: Thanks to Sergii Leonov, John Stevenson, and jogo- for their contributions!

Thanks to Neil Hodgson and Igor Pavlov for their continued work on Scintilla and the LZMA SDK!

Some messages have been added and changed in this version: (View differences in Default.isl.)

- New messages:
  - ExtractionLabel, ButtonStopExtraction, StopExtraction, ErrorExtractionAborted, ErrorExtractionFailed.

Note: The official Icelandic translation has not yet been updated for these changes.

Inno Setup 6.3 Revision History