and84
8th August 2008 07:58 UTC
Mistake in a script... I can not understand where...
Hi all!
Has written a script with custom page...
Here a part of a script...
....
>Page license
Page custom CustomFun "" ""
>!insertmacro MUI_PAGE_INSTFILES
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
>ReserveFile "page.ini"
>!insertmacro MUI_LANGUAGE "Russian"
>Section "-Install"
>...
>SectionEnd
>Function .oninit
InitPluginsDir
File/oname=$PLUGINSDIRpage.ini "page.ini"
>Functionend
>Function CustomFun
!insertmacro MUI_HEADER_TEXT "TEXT1" "TEXT2"
!insertmacro INSTALLOPTIONS_INITDIALOG "page.ini"
!insertmacro INSTALLOPTIONS_SHOW
FunctionEnd
>
The section of installation is carried out two times. I can not understand why.
Probably I was mistaken in macros.
Help please.
Thanks!
pospec
8th August 2008 12:56 UTC
You have to post a whole script if you want help.
and84
8th August 2008 17:11 UTC
Originally posted by pospec
You have to post a whole script if you want help.
All script...
"MUI.nsh"
>!include "Locate.nsh"
>Name "Setup"
>OutFile "Setup.exe"
>Caption 'Setup: Обновление'
>SubCaption 0 " "
>CRCCheck on
XPStyle on
MiscButtonText "Ðазад" "Вперед" "Прервать" "Готово"
>InstallButtonText "Обновить"
>ShowInstDetails show
CompletedText "Обновление завершено! Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð½Ð°Ð¶Ð¼Ð¸Ñ‚Ðµ кнопку 'Готово'"
>Var url
>Var ip
>Var lnk
>Var ini_xz
>Var ip_add
>Var HWND1
>Var DLGITEM
>Var FONT
Page license
Page custom SetCustom "" ""
>!insertmacro MUI_PAGE_INSTFILES
Licensetext " " "Продолжить"
>LicenseData "lic1.rtf"
>LicenseBkColor /windows
LicenseForceSelection checkbox "Я прочитал Ñоглашение и ÑоглаÑен Ñ ÐµÐ³Ð¾ уÑловиÑми!"
>ReserveFile "${NSISDIR}\\Plugins\\InstallOptions.dll"
>ReserveFile "page.ini"
>!insertmacro MUI_LANGUAGE "Russian"
>Section "-init"
StrCpy $url "Error"
StrCpy $ip "OFF"
StrCpy $lnk "OFF"
ReadINIStr $ini_xz "$PLUGINSDIR\\page.ini" "Field 2" "State"
StrCmp $ini_xz "1" 0 +3
StrCpy $url "http://22.10.10.120/load"
StrCpy $ip_add "22.10.10.120"
ReadINIStr $ini_xz "$PLUGINSDIR\\page.ini" "Field 3" "State"
StrCmp $ini_xz "1" 0 +3
StrCpy $url "http://10.1.1.177/load"
StrCpy $ip_add "10.1.1.177"
ReadINIStr $ini_xz "$PLUGINSDIR\\page.ini" "Field 4" "State"
StrCmp $ini_xz "1" 0 +3
StrCpy $ip "OK"
ReadINIStr $ini_xz "$PLUGINSDIR\\page.ini" "Field 12" "State"
StrCmp $ini_xz "1" 0 +3
StrCpy $lnk "OK"
>SectionEnd
Section "-Install"
StrCpy $2 "0"
StrCmp $url "Error" 0 urlOK
DetailPrint "Ошибка: Ðе определен параметр URL=$url(58x59x60x77x78)!"
goto error
urlOK:
SetOutPath $EXEDIR
DetailPrint "Соединение Ñ Ñервером..."
DetailPrint "Загрузка файл data.ini Ñ Ñервера..."
NSISdl::download /TRANSLATE "Загрузка файл data.ini Ñ Ñервера..." "Соединение Ñ Ñервером..." "Ñек." "мин." "ч." "c" "%d Кб (%d%%) из %d Кб -- %d.%01d Кб/Ñ" " ( %d %s оÑталоÑÑŒ )" "$url/data.ini" "$EXEDIR\data.ini"
IfFileExists "$EXEDIR\\data.ini" +4
goto error
DetailPrint "Ð§Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°..."
next:
IntOp $2 $2 + 1
ReadINIStr $R1 '$EXEDIR\\data.ini' 'FILE $2' 'NAME'
ReadINIStr $R2 '$EXEDIR\\data.ini' 'FILE $2' 'PATH'
ReadINIStr $R3 '$EXEDIR\\data.ini' 'FILE $2' 'CRC'
ReadINIStr $R4 '$EXEDIR\\data.ini' 'FILE $2' 'END'
StrCmp $R2 "system" +3 0
StrCmp $R2"BASE" +2 0
goto end
IfFileExists"$EXEDIR\$R2\$R1" +2
goto load
CRCCheck
::GenCRC "$EXEDIR\$R2\$R1"
Pop $R0
StrCmp $R0 $R3 end 0
load:
NSISdl::download /TRANSLATE "Загрузка файлов программы..." "Соединение Ñ Ñервером..." "Ñек." "мин." "ч." "c" "%d Кб (%d%%) из %d Кб -- %d.%01d Кб/Ñ" " ( %d %s оÑталоÑÑŒ )" "$url/$R2/$R1" "$EXEDIR\$R2\$R1"
end:
StrCmp $R4 "END" 0 +3
DetailPrint "Обновление завершено уÑпешно!"
goto quit
goto next
error:
DetailPrint "Ошибка: Ðет доÑтупа к файлу!"
DetailPrint "ОбратитеÑÑŒ в тех. поддержку на форуме!"
quit:
>SectionEnd
Section "-host"
StrCmp $ip "OFF" 0 +3
DetailPrint "Ð’ÐЖÐО! Ðеобходимо натÑроить ХоÑÑ‚ фаил..."
Goto exit
CopyFiles $SYSDIRdriversetchosts $SYSDIRdriversetchosts.bak
FileOpen$0 $SYSDIRdriversetchosts w
DetailPrint "ÐвтоматичеÑÐºÐ°Ñ Ð½Ð°Ñтройка хоÑÑ‚ файла..."
FileWrite $0 "127.0.0.1 localhost$\n"
FileWrite $0 "$ip_add Info.DT.net$\n"
FileWrite $0 "$ip_add help.DT.net$\n"
FileClose $0
exit:
>SectionEnd
>Function .oninit
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
Pop $0
StrCmp$0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION "Setup.exe уже запущен!"
Abort
IfFileExists"$EXEDIR\system\RunDT.exe" +2
MessageBox MB_ICONSTOP|MB_OK "Setup.exe необходимо запуÑкать из папки программы DT!" IDOK +2
MessageBox MB_USERICON|MB_YESNO|MB_DEFBUTTON1 "Обновить Ваш клиент?" IDYES +2
Abort
InitPluginsDir
File/oname=$PLUGINSDIRpage.ini "page.ini"
>Functionend
>Function SetCustom
!insertmacro MUI_HEADER_TEXT "TEXT1" "TEXT2"
!insertmacro INSTALLOPTIONS_INITDIALOG "page.ini"
!insertmacro INSTALLOPTIONS_READ $DLGITEM "page.ini" "Field 1" "HWND" ; Выбор
CreateFont $FONT"Tahoma" 8 700
SendMessage $DLGITEM${WM_SETFONT} $FONT 0
!insertmacro INSTALLOPTIONS_READ $DLGITEM "page.ini" "Field 5" "HWND" ; ХоÑÑ‚
CreateFont $FONT"Tahoma" 8 700
SendMessage $DLGITEM${WM_SETFONT} $FONT 0
!insertmacro INSTALLOPTIONS_READ $DLGITEM "page.ini" "Field 7" "HWND" ; П Ðет
CreateFont $FONT"Tahoma" 8 300 /UNDERLINE
SendMessage $DLGITEM${WM_SETFONT} $FONT 0
!insertmacro INSTALLOPTIONS_READ $DLGITEM "page.ini" "Field 9" "HWND" ; П Ð_еал
CreateFont $FONT"Tahoma" 8 300 /UNDERLINE
SendMessage $DLGITEM${WM_SETFONT} $FONT 0
!insertmacro INSTALLOPTIONS_READ $DLGITEM "page.ini" "Field 6" "HWND"
CreateFont $FONT "Tahoma" 8 300 /UNDERLINE
SendMessage $DLGITEM${WM_SETFONT} $FONT 0
!insertmacro INSTALLOPTIONS_READ $DLGITEM "test.ini" "Field 2" "HWND"
CreateFont $FONT "Tahoma" 8 400
SendMessage $DLGITEM${WM_SETFONT} $FONT 0
!insertmacro INSTALLOPTIONS_SHOW
FunctionEnd
>Function .onInstSuccess
StrCmp $lnk"OK" 0 +2
DetailPrint "Создание Ñрлыка на рабочем Ñтоле..."
CreateShortCut "$DESKTOP\RunDT.lnk" "$EXEDIR\system\RunDT.exe" "" "$EXEDIR\system\DT.ico"
>FunctionEnd
>
Structure page.ini
***93;
>NumFields=12
>***91;Field 1***93;
>Type=GroupBox
Left
=0
Right=-1
Top=1
Bottom=-65
Text=" Ðатройки обновлениÑ... "
>***91;Field 2***93;
>Type=RadioButton
Text=Я из группы Home
Left=10
Right=-10
Top=14
Bottom=22
State=1
Flags=/NOTIFY
>***91;Field 3***93;
>Type=RadioButton
Text=Я из локальной Ñети DT
Left=10
Right=-10
Top=47
Bottom=57
State=0
Flags=/NOTIFY
>***91;Field 4***93;
>Type=checkbox
Text=ÐаÑтроить хоÑÑ‚-фаил
Left=10
Right=-10
Top=95
Bottom=105
State=1
Flags=NOTABSTOP
>***91;Field 5***93;
>Type=GroupBox
Left=0
Right=-1
Top=83
Bottom=-1
Text=" Дополнительно... "
>***91;Field 6***93;
>Type=Label
Left=25
Right=-230
Top=106
Bottom=116
Text=Примечание:
***91;Field 11***93;
>Type=Label
Left=-227
Right=-5
Top=106
Bottom=116
Text=Ð_екомендуетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ°Ñ Ð½Ð°Ñтройка.
***91;Field 7***93;
>Type=Label
Left=28
Right=-230
Top=25
Bottom=35
Text=Примечание:
***91;Field 8***93;
>Type=Label
Left=-227
Right=-5
Top=25
Bottom=45
Text=Ð”Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñми группы Home.
***91;Field 9***93;
>Type=Label
Left=28
Right=-230
Top=58
Bottom=68
Text=Примечание:
***91;Field 10***93;
>Type=Label
Left=-227
Right=-5
Top=58
Bottom=68
Text=Только Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ локальной Ñети.
***91;Field 12***93;
>Type=checkbox
Text=Создать Ñрлык на рабочем Ñтоле.
>Left=10
Right=-10
Top=121
Bottom=131
State=1
Flags=NOTABSTOP
>