Originally posted by SuperPat I have tried with UAC, but but I did not find any problems...
The inner process has a higher privilege level too.

When using the UAC Pluginonly the "inner" process is elevated. The "outer" process runs with RequestExecutionLevel user. This way the "inner" process, while being elevated, can ask the "outer" one to run jobs at user level. This is required, because once a process is elevated, all processes it creates are elevated too. But this causes serious problems. If you launch a normal application with elevated rights, then Drag&Drop will be disabled. And other strange things happen! So we need to be able to launch Non-elevated processes from an elevated installer. That's why the UAC Plugin is so important: It allows to run the "main" (inner) installer at elevated level and do the install tasks, but we can still launch user processes from the "outer" process.

Now the problem with UMUI is that it restarts the installer, when the language is changed. When using UAC Plugin, only the "inner" installer will be restarted. The "outer" one will simply terminate! Because the "outer" one was waiting for the "inner" one and the "inner" one has terminated, so the "outer" one does too. It can't know that the "inner" one created a child process, just before it terminated. Well, that's the usual ExecWait behavior. As a result only the "inner" (elevated) installer will be running after language change in UMUI. All calls that would involve the "outer" installer, such as UAC::Exec will fail! That's a serious problem and it means we can't use UMUI with UAC right now.

- Fixed: the UMUI_ADDITIONALTASKS_IF_NOT_CKECKED macro does not work
- Fixed: If you use the Abort Instruction in the alternative start menu custom leave function, the pas was not displayed
- The Context radio buttons of the alternative start menu page are disabled if the installer doe not have administrator rights (Start menu shortcuts can only be created for current user).

I have a requirement now to bypass the UMUI Update page and show the license page .
My sequence of dialogs are

Welcome -> License -> Directory -> install files- > finish

On upgrade , I need to show the License -> installfiles -> Finish

I tried to have a condition in the Welcome show function which detect the version and on being higher I navigate to License Page . But somehow the installation seems very slow and erroneous in this sequence .
Is this the right way to skip the update page ?

I have a little problem. I tried to use the TaskbarProcess plugin, but it doesn't work with UMUI, because this use the PageCallbacks [show_function] of the install page, which isn't in the UMUI. There is any other option, using this plugin in UMUI?
THX

- Updated: NSISArray plugin to version 2.4 that using the new API version. The old version 2.2 of the DLL plugin, using the old API, is kept for user having NSIS versions prior to 2.42.
- Modified: UMUI installers now install the new API version of the InstallOptionsEx plugin instead of the legacy version for user having NSIS versions 2.42 or later.
- Added: Configuration define in the Include\UMUI.nsh and Include\MUIEx.nsh files to choose if UMUI need to use the old API version.
- Fixed: Missing installing two files (exdll-vs2008.sln, exdll-vs2008.vcproj in examples\plugin directory) in the NSIS+UMUI package.
- Fixed: Warning in the confirm page if UMUI_CONFIRMPAGE_TEXTBOX is not defined.
- Added: The information page now support natively multiple translated information files. See the Information.nsi example for details.
- Fixed: The last two characters of the last line of text files where dropped in information pages.
- Optimization: UMUI use the $EXEPATH variable instead of the System plugin to find the installer full path. Consequently, UMUI is now compatible with NSIS 2.26 at least.

TODO:
- If (components, installdir...) pages are aborted because the user choose the minimal, standard or complete option in the install type page, their default properties will be saved in the registry.
- Add support for the large string version of NSIS.
- Create an Unicode version of Ultra Modern UI and its plugins compatible with the incoming version of NSIS.

TODO:
- Fix: If (components, installdir...) pages are aborted because the user choose the minimal, standard or complete option in the install type page, their default properties will be saved in the registry.
- Add: support for the large string version of NSIS.
- Create an Unicode version of Ultra Modern UI and its plugins compatible with the incoming version of NSIS.
- Improve: The documentation is outdated and the SkinnedControls plugin documentation is non-existant. So you can see examples to see all properties.
- Improve: Need to rewrite one of the macros managing "UMUI Flags" (It allows, among other things, what options were chosen in the different pages ...).

I'm trying to use the UMUI for a MultiLanguage installer. What I found is that if I try to add Russian in my installer all I get is garbage in the interface. I tried compiling using unicode-NSIS but this seems to break the SkinnedControls plugin (I get an error with a message in Chinese and I get no language selection box). I also tried with the example provided but I have the same problem.

I reckon I have two options here:
1) Do not show Russian if the codepage is not compatible
2) Make SkinnedControls work with Unicode

Do you have an idea on both those solutions and what would be the correct way to proceed?

TODO:
- Create an Unicode version of Ultra Modern UI and its plugins compatible with the incoming version of NSIS.

Tallmaris: that's on the todo list from the last (and previous changlogs) so until SuperPat / someone else sorts it out then you're going to keep having the issue you are seeing i believe (though the code for the plug-in should be available so you could compile a version yourself if needed).

Sorry I had to read the TODO list before posting... Anyway, I went the hard way (not that hard once you know what to do but I'm pretty noob in C++) and recompiled the SkinnedControls plugin. I have attached the source code and the compiled dll (it is in the plugins folder) for anyone wanting to give it a shot.

The problem I have now is that the UI_PAGE_MULTILANGUAGE is not appearing, probably because I am using InstallOptionsEx which again is not Unicode. I'll see what I can do with it (I'm afraid I don't have the source code tho) or maybe switch to InstallOptions and get rid of the TreeView view in the StartMenu page.