Previous | Contents | Next

## D.4 Dump Content of Log Window to File

This function will dump the log of the installer (installer details) to a file of your choice. I created this function for Afrow_UK who requested a way to dump the log to a file in this forum thread.

To use it, push a file name and call it. It will dump the log to the file specified. For example:

    GetTempFileName $0

    Push $0

    Call DumpLog

Here is the function:

    !define LVM_GETITEMCOUNT 0x1004

    !define LVM_GETITEMTEXT 0x102D

    Function DumpLog

      Exch $5

      Push $0

      Push $1

      Push $2

      Push $3

      Push $4

      Push $6

      FindWindow $0 "#32770" "" $HWNDPARENT

      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

written by KiCHiK

Previous | Contents | Next