InnoEx help/tips

I think that InnoEx is pretty simple program but some things may be a little confusing or just unknown at first sight. This is why this “help” was created and I hope it will be useful to you (please excuse my poor English).


Contents

Working with files on ListView
Using drag and drop
Searching for Inno Setup
Bundled installers
Detecting encrypted files
Extract files with selected language
Rename files according to “DestName:” parameter
Viewer (misc.)
Shell integration/context menu
Using external editors
Custom options


Working with files on ListView

If you want to select multiple files, use CTRL or SHIFT. With CTRL pressed down, you can slide through items to select them faster (or click one by one). It is possible to select items without pressing those keys. To do it, you need to activate option called “Selection mode” (ListView popup menu).

Use CTRL+N shortcut, if you want locate selected items.


Using drag and drop

You can open Inno Setup installers in InnoEx by dropping them on program main window (only *.exe and *-0.bin files). It is also possible to extract files from InnoEx to other programs (e.g. Windows Explorer) by using drag and drop. By default, you will get only files from this action. If you want to drop files with directories tree – hold ALT key, or change this in program options.

Extracting files by drag and drop is slower than normal extraction. Therefore, if you want to extract lots of files or really big ones, it could be better (faster) to choose normal extraction process.


Searching for Inno Setup

IEX_S4InnoThis feature will help you detect Inno Setup installers among other files/different installers. It is very easy to use. Just add files, folders or drives using “Add” button (or by drag and drop form e.g. Windows Explorer) and then click “Start”. You can open installers from this list in main program by double clicking (or using Enter).

To make it more convenient, you can open this dialog automatically after dropping files/folders (more than one file) on main InnoEx window.



Bundled installers

IEX_TTOIt is possible to open another – bundled in – Inno Setup installer, directly from InnoEx. To do it, right click on the file you want to open and choose “Try to open” from popup menu (available only for *.exe and *-0.bin files).

If the file you want to open is truly an Inno Setup installer, InnoEx will extract all files/slices that belong to this installer (if available) and then open it in new program instance (independent from each other). After that, menu name will be changed to “Open bundled installer” (or removed – for files that are not detected as Inno Setup).

It is also possible to detect bundled installers automatically (View menu), so you don’t have to waste your time.

IEX_Bundled

All bundled installers will have underline font style and a little darker color to make them easier to see. You can locate them on ListView by pressing CTRL+B or by entering “#bundled” in search box.


Detecting encrypted files

Original InnoUnp does not support this feature and the only way to detect encrypted files, is to try to extract them one by one, looking for password notification (from InnoUnp). This method is rather slow, so I made small changes inside InnoUnp (using available source code) to add real/full support for this feature. With this modified version (distributed with InnoEx), there is no need to extract files, so it works significantly faster. Of course you can use whatever version you like.

Here are two Inno Setup installers with encrypted files (if you want to compare performance by yourself).


Extract files with selected language

IEX_ewslThis option will help you make your extracted programs more usable. It is a little like simulating normal installation where InnoEx extracts files from selected language with files that do not have assigned language. Files from other languages are skipped (not extracted). InnoEx will also rename files to their proper names (according to “DestName:” parameter).


I have prepared test installer, which will show you how this works.
What to do with this file: First, extract all files without selected language. Then repeat this process two more times, with “en” and “jp” language selected (remember to change destination dir for each extraction). Finally, compare those folders.

(Please keep in mind that this feature is not perfect and some errors or problems may happen)


Rename files according to “DestName:” parameter

IEX_earatdnpSimilar purpose to “Extract with selected language”, but this option will only rename files.


Let’s say we have something like this in our installer:
Source: "{app}\tempname,1.bkk"; DestDir: "{app}"; DestName: "outputlib.dll";

After normal extraction, you will get this file as: tempname,1.bkk.
But with this option, you will find outputlib.dll in your extract dir.

If there are more files, like:
Source: "{app}\tempname,1.bkk"; DestDir: "{app}"; DestName: "outputlib.dll";
Source: "{app}\tempname,2.bkk"; DestDir: "{app}"; DestName: "outputlib.dll";
Source: "{app}\tempname,3.bkk"; DestDir: "{app}"; DestName: "outputlib.dll";

a) and there are all identical – you will have only one file named: outputlib.dll.
b) there are different – you will have one (first) file named as: outputlib.dll and two files with original names: tempname,2.bkk + tempname,3.bkk.

One more thing. By default InnoEx will ignore files with Check: parameter, because in some cases this can be a little problematic. Let’s suppose we are on 64-bit version of Windows and we have this installer:

Source: "{app}\tempname32,1.dll"; DestDir: "{app}"; DestName: "outputlib.dll"; Check: "Not IsWin64";
Source: "{app}\tempname64,2.dll"; DestDir: "{app}"; DestName: "outputlib.dll"; Check: "IsWin64";

First file is for Windows 32-bit, second for Windows 64-bit. Now, after extraction we will have first file named outputlib.dll, but as you can see this is not a proper version for “our” Windows.

I’m still not sure what to do with this. It is possible to imitate some functions from Inno but those custom made are no go. Anyway, if you want to remove this restriction, look for IgnoreCheckParameter in config file and change it to 1.

IgnoreCheckParameter controls including/excluding files with Check: parameter from renaming process. If you leave this option at 0 and then load some installer that have mixed files to rename, InnoEx will only change those without Check: parameter. If loaded installer have only files with this parameter – whole feature is disabled. After changing this option to 1, you will see special mark (at the end of caption) for installers that have some files with Check: parameter to rename.

IEX_earatdnp2

(Please keep in mind that this feature is not perfect and some errors or problems may happen)


Viewer (misc.)

It is possible to make a quick search without using search dialog. Just select a text and press F3. You can also use SHIFT+CTRL+F combination, which will show search dialog and replace search term with selected text.

(Not available if you select multi-line text)


Shell integration/context menu

You can use either simple context menu integration (available from InnoEx options) or shell extension. First method will add menu for all executables, but it does not require additional libraries. Second one will provide context menu only for Inno Setup installers, but you need to register this library in your system and keep it in one dir (so portability is gone).

If you decide to use shell extension, you should know that it is not 100% accurate. In order to show/hide context menu item for selected executable, I need to check somehow if it’s Inno installer or not. This is done by reading file Version Information and checking if there are some Innno Setup references. This simple detection method fulfills it’s task for most of the time. The problem is with some really old Inno installers, because they don’t have Version Information resource included, therefore they cannot be recognized properly. I could use another detection method but not without performance penalty, because searching for Inno Setup ID inside file would cause some delay for showing context menu (+/- 400ms on typical HDD / unless you are on SSD). There is no easy solution to this problem. For now, I decided to use extended context menu idea from Windows, so if you hold down SHIFT key and right click some executable, you will see InnoEx menu item, which will let you pass selected file further to main program.

More information about shell extension (how to install) in archive.


Using external editors

It is possible to assign an external program for viewing/editing/working with files from currently loaded Inno Setup installer. It may be for example a hex/text editor or… anything else you want.

Whether you add some command parameters or not, first parameter will be used to pass the file you want to open (with quotes).

Let’s say we have something like this:
IEX_ee_prv1

InnoEx will call it like this:
C:\Program Files (x86)\Notepad++\notepad++.exe "SomeFile.ext" -nosession

If you need to change the way how the file is passed to external program, use %1 variable.

So this:
IEX_ee_prv2

Will be called as:
C:\Program Files (x86)\Notepad++\notepad++.exe -nosession -file:"SomeFile.ext"
 

Available shortcuts for external editors: CTRL+1-4 or CTRL+~ for InnoEx Viewer (some file must be selected on ListView).


Custom options available through config file

Asked by users (well, most of it) but not necessarily relevant to everyone.

Howto: Close InnoEx (if program is running), open InnoEx.dat in some text editor and look for section named [Custom]. Then make your changes according to information posted below.

InnoUnpCustomName=[e.g. innounp.dat] – will let you change name of innounp.exe to something else (to make it work, put there your new file name, e.g. innounp.dat and rename innounp.exe to that name).

MainGaugeHeight=[default-4, min-1] – change height of progress bar (if you think it’s too thin).

MainGaugeForeColor=[default-#000000] – change progress bar foreground color.

MainGaugeBackColor=[default-#FFFFFF] – change progress bar background color.

MainBundInstColor=[default-#E5E5E5] – change background color for bundled installers.

MainEncFilesColor=[default-#800080] – change font color for encrypted files.

MainSelModeColor=[default-sys highlight color] – change background color for selected files, when “Selection mode” is activated (some kind of visual indicator).

VerifyTrust=[default-0] – when set to 1, will check if loaded setup contains valid digital signature (installer was not altered by someone) – this information will be available from “Installer properties” dialog.

ExtEditorsLimit=[default-2] – this option will change number of your external files editors (1 – only one external editor will be available, 2 – two external editors, 3 – three external editors, 0 – disable all external editors, including menu in options).

CleanMRUList=[default-0] – when set to 1, this option will remove files from MRU list that no longer exist (at program start up).

LvDoubleBuffering=[default-1] – will let you change double buffering for ListView (0 – disabled, 1 – enabled). Enable this if you want to reduce flickering. Disable, if you think ListView is sluggish or glitchy.

CascadedExtEditors=[default-1] – controls how external editors are displayed in ListView menu (0 – normal, 1 – cascaded).

ToolBarDisplayMode/ToolBarArrowVisible – just in case, if you want old Toolbar look.

ForceISLoad=[default-0] – this option controls functions used for detecting and opening Inno Setup installers in InnoEx (0 – if file was not detected as Inno installer, you will only see warning message and it is not possible to load it to program, 1 – if file was not detected as Inno installer, you will see warning message but with ignore button, which will let you try to load that file anyway, 2 – file is passed directly to InnoUnp – not recommended, unless you know what you are doing). Please note that detecting Inno installers works much better now than in InnoEx v0.8. However, I recommend to set this option to 1, so if you have any doubts that the file you want to open was not correctly detected, you can always pass it further to InnoUnp by using ignore button on warning message.

PrivateMode=[default-0] – change this to 1, if you don’t want to store “personal informations” (last used files/folders, search phrases, etc) in config file. You can still use them while program is running, but they are not saved/loaded.

ConvertCMSection=[default-0] – when set to 1, this option will convert language strings used in [CustomMessages] section, from Ansi to UTF-8 (using code page specified in language stub). Preview.

-It has no meaning for Unicode installers.
-May slow down a little installers loading time.
-Experimental, use with caution.


Updated on: 2015-7-22