diff options
| -rw-r--r-- | indra/newview/installers/windows/installer_template.nsi | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 76187b49a5..adcf8fd0e4 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -705,10 +705,21 @@ Function .onInstSuccess          # updater can detect the problem and adapt accordingly.
          # Once everything is in order, the updater will run the specified
          # viewer with the specified params.
 +        # 'Exec updater' causes the viewer to inherit elevated Admin privileges. See
 +        # http://mdb-blog.blogspot.com/2013/01/nsis-lunch-program-as-user-from-uac.html
 +        # for workaround: running the updater via explorer.exe.
 +        # Thing is, you can't pass parameters with the explorer.exe trick, so
 +        # you have to create a shortcut or a .bat file. Since we don't want a
 +        # permanent shortcut for the user to relaunch the updater like this
 +        # first time, create it in a temp location and delete it once we've
 +        # used it.
          # Quote the updater executable and the viewer executable because each
          # must be a distinct command-line token, but DO NOT quote the language
          # string because it must decompose into separate command-line tokens.
 -        Exec '"$INSTDIR\$INSTEXE" precheck "$INSTDIR\$VIEWER_EXE" $SHORTCUT_LANG_PARAM'
 +        CreateShortCut "$TEMP\SLFirst.lnk" "$INSTDIR\$INSTEXE" \
 +                       'precheck "$INSTDIR\$VIEWER_EXE" $SHORTCUT_LANG_PARAM'
 +        Exec '"$WINDIR\explorer.exe" "$TEMP\SLFirst.lnk"'
 +        Delete "$TEMP\SLFirst.lnk"
          Pop $R0
  # 
  FunctionEnd
 | 
