[архив].: NSIS - все вопросы :.
-
K.A.V.
Re: [архив].: NSIS - все вопросы :.
Может кто-нибудь подсказать почему не работает вот это в деинсталляторе?
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
И если так не правильно , то как тогда правильно сделать?
Мне нужна возможность в деталях просматривать процесс деинсталяции.
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
И если так не правильно , то как тогда правильно сделать?
Мне нужна возможность в деталях просматривать процесс деинсталяции.
-
wolkow70
Re: [архив].: NSIS - все вопросы :.
Цитата wolkow70:
Может кто-нибудь подсказать почему не работает вот это в деинсталляторе?
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
Выяснил сам. Оказывается, что работает, нужно только в секции деинсталлятора убрать
SetAutoClose true
Может кто-нибудь подсказать почему не работает вот это в деинсталляторе?
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
[архив].: NSIS - все вопросы :.
Выяснил сам. Оказывается, что работает, нужно только в секции деинсталлятора убрать
SetAutoClose true
-
dix75
Re: [архив].: NSIS - все вопросы :.
Что здесь не так
Код:
Код:
Решено. Спасибо
Код:
Код: Выделить всё
${StrRep} $folder $folder "/" "\"Код:
Код: Выделить всё
!insertmacro: macro "FUNCTION_STRING_StrRep" requires 0 parameter(s), passed 4!Решено. Спасибо
-
dix75
Re: [архив].: NSIS - все вопросы :.
Цитата wolkow70:
Товарищи, подскажите как в
MB_USERICON подставить другую иконку, а не инсталлятора?
Элементарно....
Код:
Код:
Товарищи, подскажите как в
MB_USERICON подставить другую иконку, а не инсталлятора?
[архив].: NSIS - все вопросы :.
Элементарно....
Код:
Код: Выделить всё
${MessageBoxEx} "путь к файлу ресурсу, где иконка" "текст надписи" "текст заголовка" "стиль сообщения" "индекс иконки" "код возврата"читать дальше »
Код:
Код: Выделить всё
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE Russian
OutFile "msgbox-setup.exe"
!ifndef MB_OK
!define MB_OK 0x00000000
!define MB_OKCANCEL 0x00000001
!define MB_ABORTRETRYIGNORE 0x00000002
!define MB_YESNOCANCEL 0x00000003
!define MB_YESNO 0x00000004
!define MB_RETRYCANCEL 0x00000005
!define MB_CANCELTRYCONTINUE 0x00000006
!define MB_ICONHAND 0x00000010
!define MB_ICONQUESTION 0x00000020
!define MB_ICONEXCLAMATION 0x00000030
!define MB_ICONASTERISK 0x00000040
!define MB_USERICON 0x00000080
!define MB_ICONWARNING ${MB_ICONEXCLAMATION}
!define MB_ICONERROR ${MB_ICONHAND}
!define MB_ICONINFORMATION ${MB_ICONASTERISK}
!define MB_ICONSTOP ${MB_ICONHAND}
!define MB_DEFBUTTON1 0x00000000
!define MB_DEFBUTTON2 0x00000100
!define MB_DEFBUTTON3 0x00000200
!define MB_DEFBUTTON4 0x00000300
!define MB_APPLMODAL 0x00000000
!define MB_SYSTEMMODAL 0x00001000
!define MB_TASKMODAL 0x00002000
!define MB_HELP 0x00004000
!define MB_NOFOCUS 0x00008000
!define MB_SETFOREGROUND 0x00010000
!define MB_DEFAULT_DESKTOP_ONLY 0x00020000
!define MB_TOPMOST 0x00040000
!define MB_RIGHT 0x00080000
!define MB_RTLREADING 0x00100000
!define IDABORT 3
!define IDCANCEL 2
!define IDCONTINUE 11
!define IDIGNORE 5
!define IDNO 7
!define IDOK 1
!define IDRETRY 4
!define IDTRYAGAIN 10
!define IDYES 6
!endif
!define MessageBoxEx "!insertmacro macro_MessageBoxIndirect"
!macro macro_MessageBoxIndirect Library lpszText lpszCaption dwStyle lpszIcon ExitCode
Push `${lpszText}`
Push `${lpszCaption}`
Push `${Library}`
Push `${dwStyle}`
Push `${lpszIcon}`
System::Store Sr1r2r3r4r5
System::Call 'kernel32::LoadLibrary(tr3)i.r0'
StrCmp $0 0 +5
System::Call '*(&l4, i$HWNDPARENT, ir0, tr5, tr4, i$2|${MB_USERICON}, ir1, i,k,i)i.r5'
System::Call 'user32::MessageBoxIndirect(ir5) i.s'
System::Call "kernel32::FreeLibrary(ir0)"
System::Free $5
StrCmp $0 0 0 +2
Push "error"
System::Store L
Pop `${ExitCode}`
!macroend
Section
${MessageBoxEx} "$SYSDIR\shell32.dll" "lpszText" "lpszCaption" "${MB_YESNOCANCEL}" "194" $1
${If} $1 == ${IDYES}
MessageBox MB_OK "Нажали кнопку `Да`"
${ElseIf} $1 == ${IDNO}
MessageBox MB_OK "Нажали кнопку `Heт`"
${ElseIf} $1 == ${IDCANCEL}
MessageBox MB_OK "Нажали кнопку `Отмена`"
${Else}
MessageBox MB_OK "$$1 = $1"
${EndIf}
SectionEnd-
K.A.V.
Re: [архив].: NSIS - все вопросы :.
Цитата kotkovets:
Элементарно....
Кому как. Мне с этим вряд ли разобраться.
Мне надо в сообщении типа этого просто иконку другую указать.
MessageBox MB_YESNO|MB_USERICON|MB_TOPMOST "Внимание!$\n\
$\nЕсли у вас открыты окна браузеров Internet Explorer, Mozilla Firefox,$\nOpera, Google Chrome закройте их перед продолжением установки. \
$\nВ противном случае, они будут закрыты принудительно! \
$\nЭто избавит от конфликтов интеграции программы. \
$\nПродолжить установку ${PRODUCT_NAME} ?" /SD IDYES IDYES continue IDNO close
;
close:
Abort
continue:
Элементарно....
[архив].: NSIS - все вопросы :.
Кому как. Мне с этим вряд ли разобраться.
Мне надо в сообщении типа этого просто иконку другую указать.
MessageBox MB_YESNO|MB_USERICON|MB_TOPMOST "Внимание!$\n\
$\nЕсли у вас открыты окна браузеров Internet Explorer, Mozilla Firefox,$\nOpera, Google Chrome закройте их перед продолжением установки. \
$\nВ противном случае, они будут закрыты принудительно! \
$\nЭто избавит от конфликтов интеграции программы. \
$\nПродолжить установку ${PRODUCT_NAME} ?" /SD IDYES IDYES continue IDNO close
;
close:
Abort
continue:
-
dix75
Re: [архив].: NSIS - все вопросы :.
Цитата wolkow70:
Кому как. Мне с этим вряд ли разобраться.
Мне надо в сообщении типа этого просто иконку другую указать.
ну так и указываете, хоть с исполняемого файла оперы.
Код:
Кому как. Мне с этим вряд ли разобраться.
Мне надо в сообщении типа этого просто иконку другую указать.
[архив].: NSIS - все вопросы :.
ну так и указываете, хоть с исполняемого файла оперы.
Код:
Код: Выделить всё
${IfNot} ${Silent}
${MessageBoxEx} "$SYSDIR\shell32.dll" "lpszText" "lpszCaption" "${MB_YESNO}|${MB_TOPMOST}" "512" $1
${Else}
StrCpy $1 ${IDYES}
${EndIf}
${If} $1 == ${IDYES}
MessageBox MB_OK "Нажали кнопку `Да`"
${ElseIf} $1 == ${IDNO}
MessageBox MB_OK "Нажали кнопку `Heт`"
${EndIf}-
K.A.V.
Re: [архив].: NSIS - все вопросы :.
Товарищи, может кто подскажет как на собственную страницу поместить просмотр текстового документа? Чего-то не получается:
Мне нужно, чтобы этот текстовый файл отображался с прокруткой.
И еще заголовок страницы поменять нужно, а то отображается от следующей страницы.
В функции вот что:
Код:
Мне нужно, чтобы этот текстовый файл отображался с прокруткой.
И еще заголовок страницы поменять нужно, а то отображается от следующей страницы.
В функции вот что:
Код:
Код: Выделить всё
Function fnCustomInit
nsDialogs::Create 1018
Pop $Dialog
${NSD_CreateLabel} 0 0 100% 12u "Вы можете ознакомиться с информацией об устанавливаемой программе"
Pop $Label
${NSD_CreateText} 0 13u 100% -13u "${pkgdir}\FlylinkDC++\readme_ru-RU.rtf"
Pop $Text
nsDialogs::Show
FunctionEnd-
dix75
Re: [архив].: NSIS - все вопросы :.
Цитата wolkow70:
как на собственную страницу поместить просмотр текстового документа?
Вот так:
Код:
как на собственную страницу поместить просмотр текстового документа?
[архив].: NSIS - все вопросы :.
Вот так:
читать дальше »
Код:
Код: Выделить всё
!include "MUI2.nsh"
!include "FileFunc.nsh"
Page custom Help
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
InstallDir "$PROGRAMFILES\LICENSE"
OutFile "Basic.exe"
Var TextPage
Var Dialog
Var Label
!define LoadRTF "!insertmacro macro_LoadRTFfunc"
!define __NSD_RichEdit_CLASS "RichEdit20A"
!define __NSD_RichEdit_STYLE ${DEFAULT_STYLES}|${WS_TABSTOP}|${WS_VSCROLL}|${ES_AUTOHSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN}
!define __NSD_RichEdit_EXSTYLE ${WS_EX_WINDOWEDGE}|${WS_EX_CLIENTEDGE}
!insertmacro __NSD_DefineControl RichEdit
!macro macro_LoadRTFfunc file hwnd
Push `${file}`
Push ${hwnd}
System::Store Sr0r1
SendMessage $0 1077 0 0x7fffffff
System::Get "(i, i.R0, i.R1, i.R2) iss"
Pop $2
System::Call "*(i 0, i 0, k r2) i .r3"
System::Call "user32::SendMessage(ir0, i1097, i2, ir3)i.s"
Pop $4
Push $4
ClearErrors
FileOpen $1 "$1" r
${Do}
Pop $0
${IfThen} "$0" != "$4" ${|}${Break}${|}
System::Call "kernel32::ReadFile(ir1, iR0, iR1, iR2, i0)"
Push 0
System::Call "$2"
${Loop}
FileClose $1
System::Free $3
System::Free $2
System::Store L
!macroend
Function Help
nsDialogs::Create 1018
Pop $Dialog
${NSD_CreateLabel} 0 0 100% 12u "Вы можете ознакомиться с информацией об устанавливаемой программе"
Pop $Label
${NSD_CreateRichEdit} 0 13u 100% 100% ""
Pop $TextPage
${LoadRTF} "$EXEDIR\test.rtf" $TextPage
nsDialogs::Show
FunctionEnd
Section "Main"
SectionEnd-
K.A.V.
Re: [архив].: NSIS - все вопросы :.
kotkovets, Работает вариант, но не думал, что так сложно. Исходил из предположения, что в NSIS есть механизм чтения RTF - файлов (ведь текст лицензии он прокручивает).
-
dix75
Re: [архив].: NSIS - все вопросы :.
K.A.V.,
Блин неправильно задание написал.
Имеется JSON строка вида
{"hello":"bla-bla"}
Как изменить bla-bla на что нить другое, известно только слово "hello"
"bla-bla" неизвестно.
такой кусок может располагаться в любом месте строки кол-во пробелов между : неограничено или может вообще отсутствовать.
Поэтому
${WordReplace} не подходит, да практически все что просмотрел.
Regex того что нужно
Код:
Блин неправильно задание написал.
Имеется JSON строка вида
{"hello":"bla-bla"}
Как изменить bla-bla на что нить другое, известно только слово "hello"
"bla-bla" неизвестно.
такой кусок может располагаться в любом месте строки кол-во пробелов между : неограничено или может вообще отсутствовать.
Поэтому
${WordReplace} не подходит, да практически все что просмотрел.
Regex того что нужно
Код:
Код: Выделить всё
/^.*\"hello\"\s*:\s*\"([^\"])+\"$/