Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

kot280379



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
 
OutFile "ns_setup.exe"
ShowInstDetails show
 
!macro ANSIToUTF8 SOURCE_STRING OUTPUT_STRING
      Push `${SOURCE_STRING}`
      System::Store SR2
      System::Call "kernel32::MultiByteToWideChar(i0,i0,tR2,i-1,i0,i0)i.R1"
      IntOp $R1 $R1 * 2
      System::Alloc $R1
      Pop $R0
      System::Call "kernel32::MultiByteToWideChar(i0,i0,tR2,i-1,iR0,iR1)"
      System::Call "kernel32::WideCharToMultiByte(i65001,i0,iR0,i-1,t.s,iR1,i0,i0)"
      System::Free $R0
      System::Store L
      Pop `${OUTPUT_STRING}`
!macroend
 
Function .OnInit
  InitPluginsDir
  File "/oname=$PLUGINSDIR\unarc.dll" "unarc.dll"
FunctionEnd
 
Section
  !insertmacro ANSIToUTF8 "$EXEDIR\MiniGames.arc" "$R8" ;указываем путь к архиву..
  Call ArcAbout
  Call ArcExtract
SectionEnd
 
Function ArcAbout
  System::Get "(t.r1,i.r4,i.r3,iR6)iss"
  Pop $R0
  System::Call "$PLUGINSDIR\unarc::FreeArcExtract(kR0,t'l',t'--',tR8,t,t,t,t,t,t,t)i.s"
  ${Do}
      Pop $0
      ${IfThen} $0 == "1" ${|}${Break}${|}
       
      ${If} $1 == "password?"
         abort
      ${ElseIf} $1 == "origsize"
         System::Call "shlwapi::StrFormatByteSize64(lr3,t.r3,i${NSIS_MAX_STRLEN})"
         StrCpy $7 $3
         ${Break}
      ${ElseIf} $1 == "total_files"
         StrCpy $6 $4
      ${EndIf}
      Push 1
      System::Call $R0
  ${Loop}
FunctionEnd
 
Function ArcExtract
  SetDetailsPrint textonly
  GetDlgItem $R5 $HWNDPARENT 1037
  GetDlgItem $R6 $HWNDPARENT 1038
  System::Get "(t.r1,i.r2,i.r3,t.r4)iss"
  Pop $R0
  System::Call "$PLUGINSDIR\unarc::FreeArcExtract(kR0,t'x',t'-o+',tR8,t'-dp$R9',t,t,t,t,t)i.s"
  StrCpy $5 0
  ${Do}
      Pop $0
      ${IfThen} $0 == "1" ${|}${Break}${|}
      ${IfThen} $0 == "-1" ${|}${Break}${|}
      ${Select} $1
           ${Case2} "error" ""
               MessageBox MB_ICONSTOP|MB_OK "$4" IDOK
               ${Break}
           ${Case} "filename"
              IntOp $5 $5 + 1
              ${If} $3 <> 0
                  System::Call "user32::OemToChar(tr4,t.r4)"
                  System::Call "shlwapi::StrFormatByteSize64(lr3,t.r8,i${NSIS_MAX_STRLEN})"
                  DetailPrint "$4 [$8]"
              ${EndIf}
           ${Case} "write"
              System::Call "shlwapi::StrFormatByteSize64(lr3,t.r3,i${NSIS_MAX_STRLEN})"
              ${If} $3 != $R1
                 SendMessage $R5 ${WM_SETTEXT} 0 `STR:Размер архива $3/$7`
                 StrCpy $R1 $3
              ${EndIf}
              ${If} $5 != $R2
                 SendMessage $R6 ${WM_SETTEXT} 0 `STR:Файлов и папок: $5/$6`
                 StrCpy $R2 $5
              ${EndIf}
      ${EndSelect}
      Push 1
      System::Call $R0
  ${Loop}
  System::Free $R0
  StrCmp $2 0 +3
  MessageBox MB_ICONSTOP "Error code $2 $1 -$0"
  Abort
  SetDetailsPrint lastused
FunctionEnd

Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 18:12 28-10-2012 | Исправлено: kot280379, 20:53 28-10-2012
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru