kotkovets,
В общем бросил я возиться с этим UAC.
Спасибо Вам за то, что научили меня делать генератор ответов. В связи с этим у меня возник вопрос:
[DIRECTORY]
INSTALLDIR=Е:\Program Files\The KMPlayer
[Sections]
StartMenu=1
Desktop=1
QuickLaunch=1
Путь установки прописывается абсолютный. А буква диска может быть разной. Почему то не срабатывает механизм использования относительного пути в данном случае.
У меня две системы на диске :
С:\ Windows7
E:\ Windows XP
Пробовал устанавливать сборку на обеих системах в автоматическом режиме. В обоих случаях распаковка идет в папку Е:\Program Files\The KMPlayer, хотя сама инсталляция производится в первом случае на Windows7.
Сейчас еще раз просмотрел скрипт. Вроде не должно такого быть. Все, что нужно есть...
Код:
!include "WordFunc.nsh"
!include "TextFunc.nsh"
Var GMODE
Var INIFILE
Var SysDrive
Var SUCCES_SECTION
Var WindowCaption
Function PREINSTFILES
${If} $GMODE = 1
WriteINIStr "$INIFILE" "DIRECTORY" "INSTALLDIR" "$INSTDIR"
${EndIf}
FunctionEnd
Section "!${PRODUCT_NAME}" Install
SectionIn 1 2 3 RO
${If} $GMODE = 0
${AndIf} ${Silent}
${AndIf} ${FileExists} "$INIFILE"
ClearErrors
ReadINIStr "$R0" "$INIFILE" "DIRECTORY" "INSTALLDIR"
${WordReplace} $R0 "%programfiles%" "$PROGRAMFILES" "+" $R1
${WordReplace} $R1 "%windir%" "$WINDIR" "+" $R0
${WordReplace} $R0 "%appdata%" "$APPDATA" "+" $R1
${WordReplace} $R1 "%systemdrive%" "$SysDrive" "+" $R0
StrCpy $INSTDIR $R0
${EndIf}
${If} $GMODE = 0
SetOutPath "$INSTDIR"
И тем не менее...