Имя пользователя:
Пароль:
 

Показать сообщение отдельно
XCV XCV вне форума

Старожил


Сообщения: 322
Благодарности: 57

Профиль | Отправить PM | Цитировать


Уважаемый K.A.V., пару страниц назад задавал вам вопрос по поводу создания лога установки инсталятора нсис изменить скрипт которого нет возможности (есть ток скомпилированный вариант) вы вроде дали довольно понятное разъяснение на основе которого я сделал скрипт, но лог так и не получил , может я что не так сделал?
Вот скрипт:
Код: Выделить весь код
!define PRODUCT_NAME "Nsis лог"
!define PRODUCT_VERSION "1.0"
;includes
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
;!define MUI_ICON "ico.ico"
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Finish page
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
; Language files
!insertmacro MUI_LANGUAGE "Russian"
!define LVM_GETITEMCOUNT 0x1004
!define LVM_GETITEMTEXT 0x102D
Name "${PRODUCT_NAME}"
OutFile "${PRODUCT_NAME}.exe"
Function DumpLog
  Exch $5
  Push $0
  Push $1
  Push $2
  Push $3
  Push $4
  Push $6
FindWindow $0 "#32770" "Заголовок окна files" ""
  GetDlgItem $0 $0 1016
  StrCmp $0 0 error
  FileOpen $5 $5 "w"
  StrCmp $5 0 error
    SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
    System::Alloc ${NSIS_MAX_STRLEN}
    Pop $3
    StrCpy $2 0
    System::Call "*(i, i, i, i, i, i, i, i, i) i \
      (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
    loop: StrCmp $2 $6 done
      System::Call "User32::SendMessageA(i, i, i, i) i \
        ($0, ${LVM_GETITEMTEXT}, $2, r1)"
      System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
      FileWrite $5 "$4$\r$\n"
      IntOp $2 $2 + 1
      Goto loop
    done:
      FileClose $5
      System::Free $1
      System::Free $3
      Goto exit
  error:
    MessageBox MB_OK error
  exit:
    Pop $6
    Pop $4
    Pop $3
    Pop $2
    Pop $1
    Pop $0
    Exch $5
FunctionEnd
Section "Inst"
 SetOutPath "$TEMP\files\"
 File /r "Files.exe"
Exec "$TEMP\files\files.exe"
SectionEnd
Section "-Post"
push "$DESKTOP\LOG.log"
Call DumpLog
SectionEnd
Заранее благодарен...
да забыл сказать что после выполнения полученной программы получаю красивое окошко с заголовком "error" и одной кнопочкой "ОК" (которое предусмотрено в скрипте)

-------
http://static.hsdn.org/infobar/240x15.gif


Последний раз редактировалось XCV, 15-02-2010 в 14:09.


Отправлено: 11:38, 15-02-2010 | #399