
[архив].: NSIS - все вопросы :.
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup ? 

-
MKN
Re: [архив].: NSIS - все вопросы :.
Цитата vahe-91:
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup ?
Да мы Вам сами споем.
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup ?
[архив].: NSIS - все вопросы :.
Да мы Вам сами споем.
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата vahe-91:
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup ?
Посмотри
А также с помощью bass.dll (отдельно нужно искать(version 2.0.0.23), где то есть даже пример в сети с кнопками, не помню)
еще :
[url=http://nsis.sourceforge.net/Play_Sound]http://nsis.sourceforge.net/Play_Sound
Вообщем то давно этим занимался, возможно sawe лучше меня разъяснит.
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup ?
[архив].: NSIS - все вопросы :.
Посмотри
EBanner plug-in
А также с помощью bass.dll (отдельно нужно искать(version 2.0.0.23), где то есть даже пример в сети с кнопками, не помню)
еще :
[url=http://nsis.sourceforge.net/Play_Sound]http://nsis.sourceforge.net/Play_Sound
Вообщем то давно этим занимался, возможно sawe лучше меня разъяснит.

-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата wolkow70:
Дак себе то я сделал
Прикрепил скрипт от своей сборки PotPlayer. Посмотрите, как там сделано . У меня все прекрасно работает.
Вы не правильно поняли, я советовал вам подправить File Association.nsh и вам и другим стало бы легче!
Цитата vahe-91:
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup
Могу только добавить, что лучше всего он кушает MP3 файлы с любым битрейном и повтором, а mid файлы долго запихивает, по этому привёл пример с банером. Если вместо SW_HIDE использовать SW_SHOW увидите плеер.
Код:
--
Дак себе то я сделал
Прикрепил скрипт от своей сборки PotPlayer. Посмотрите, как там сделано . У меня все прекрасно работает.
[архив].: NSIS - все вопросы :.
Вы не правильно поняли, я советовал вам подправить File Association.nsh и вам и другим стало бы легче!
Цитата vahe-91:
возможно сделать так, чтобы установшик воспроизводил песню как в Inno Setup
[архив].: NSIS - все вопросы :.
Могу только добавить, что лучше всего он кушает MP3 файлы с любым битрейном и повтором, а mid файлы долго запихивает, по этому привёл пример с банером. Если вместо SW_HIDE использовать SW_SHOW увидите плеер.
читать дальше »
Код:
Код: Выделить всё
;Определения пользователя!
!define SND_NAME "music.mid" # версия ${SND_NAME}
;Определяем свою переменную!
Var HMCI
ReserveFile "${NSISDIR}\Plugins\system.dll"
ReserveFile "${SND_NAME}"
Function onGuiInit
InitPluginsDir # обязательно инициировать каталог плагина!
SetOutPath $PLUGINSDIR # обязательно определить каталог плагина!
File "Sounds\${SND_NAME}" # от куда брать файл!
;Вставляем простой банер на тот случай если вы используете midi файлы, что бы заполнить паузу
Banner::show /set 76 "Пожалуйста подождите." "Идет подготовка к установке..."
System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\${SND_NAME}") i .r0'
StrCpy $HMCI $0 # сохраняет MCI описание окна на WM_CLOSE в секции!
SendMessage $HMCI 0x0490 0 0 $0 # проверка поддерживаемого формата!
IntCmp $0 0 nosup
ShowWindow $HMCI SW_HIDE # если вы хотите, чтобы mci окно было скрыто!
SendMessage $HMCI 0x0465 0 "STR:play" # Используй "STR:play" или "STR:play repeat", но "repeat" проблемна с файлами midi!
Banner::destroy # придушить банер
nosup:
FunctionEnd
Section main ; секция установки!
SectionEnd
Function .onGUIEnd
;закрывает плеер!
SendMessage $hmci ${WM_CLOSE} 0 0
FunctionEnd--
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
MKN, Пример к всему вышесказанному, будет полезно всем:
Код:
читать дальше »
Код:
Код: Выделить всё
!include "MUI2.nsh"
Page Custom pre post
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE Russian
OutFile "test.exe"
ShowInstDetails show
var dialog
var RadioButton1
var RadioButton2
var RadioButton3
var RadioButton4
var CheckBox1
var CheckBox2
var CheckBox3
var CheckBox4
var Check1
var Check2
var Check3
var Check4
var rButton1
var rButton2
var rButton3
var rButton4
var Button
var Button1
Function pre
nsDialogs::Create 1018
Pop $dialog
${NSD_CreateRadioButton} 0 0 40% 6% "Группа_1, Радио_1"
Pop $RadioButton1
${NSD_SetState} $RadioButton1 1 ;Группа_1, радио_1 при показе странички, делаем отмеченным
${NSD_CreateRadioButton} 0 12% 40% 6% "Группа_1, Радио_2"
Pop $RadioButton2
${NSD_AddStyle} $RadioButton1 ${WS_GROUP} ;определяем группу переключений 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
${NSD_CreateRadioButton} 50% 0 40% 6% "Группа_2, Радио_1"
Pop $RadioButton3
${NSD_SetState} $RadioButton3 1 ;Группа_2, радио_1 при показе странички, делаем отмеченным
${NSD_CreateRadioButton} 50% 12% 40% 6% "Группа_2, Радио_2"
Pop $RadioButton4
${NSD_AddStyle} $RadioButton3 ${WS_GROUP} ;определяем группу переключений 2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
${NSD_CreateButton} 40u 40u 140u 15u `Кнопка переключений радиобутонов`
Pop $Button
${NSD_OnClick} $Button ButtonClick
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
${NSD_CreateCheckBox} 0 65u 56u 12u "Чебокс_1"
Pop $CheckBox1
${NSD_CreateCheckBox} 0 85u 56u 12u "Чебокс_2"
Pop $CheckBox2
${NSD_CreateCheckBox} 150u 65u 56u 12u "Чебокс_3"
Pop $CheckBox3
${NSD_CreateCheckBox} 150u 85u 56u 12u "Чебокс_4"
Pop $CheckBox4
;все чебоксы отмечены
${NSD_SetState} $CheckBox1 1
${NSD_SetState} $CheckBox2 1
${NSD_SetState} $CheckBox3 1
${NSD_SetState} $CheckBox4 1
${NSD_CreateButton} 40u 105u 140u 15u `Кнопка переключений чекбоксов`
Pop $Button1
${NSD_OnClick} $Button1 ButtonClickCheckBox
nsDialogs::Show
FunctionEnd
Function ButtonClick ;функция обработки события нажатия кнопки
Pop $Button
${NSD_GetState} $RadioButton1 $rButton1
${NSD_GetState} $RadioButton2 $rButton2
${NSD_GetState} $RadioButton3 $rButton3
${NSD_GetState} $RadioButton4 $rButton4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Логика И-ИЛИ для группы 1
${If} $rButton1 == 1
${AndIf} $rButton2 == 0
${NSD_SetState} $RadioButton1 0
${NSD_SetState} $RadioButton2 1
${Else}
${NSD_SetState} $RadioButton1 1
${NSD_SetState} $RadioButton2 0
${EndIf}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Логика И-ИЛИ для группы 2
${If} $rButton3 == 1
${AndIf} $rButton4 == 0
${NSD_SetState} $RadioButton3 0
${NSD_SetState} $RadioButton4 1
${Else}
${NSD_SetState} $RadioButton3 1
${NSD_SetState} $RadioButton4 0
${EndIf}
FunctionEnd
Function ButtonClickCheckBox
Pop $Button1
;снимаем статусы чекбоксов:
${NSD_GetState} $CheckBox1 $Check1
${NSD_GetState} $CheckBox2 $Check2
${NSD_GetState} $CheckBox3 $Check3
${NSD_GetState} $CheckBox4 $Check4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Логика ИЛИ-ИЛИ для чекбоксов
${If} $Check1 == 1
${Orif} $Check2 == 1
${Orif} $Check3 == 1
${Orif} $Check4 == 1
${NSD_SetState} $CheckBox1 0
${NSD_SetState} $CheckBox2 0
${NSD_SetState} $CheckBox3 0
${NSD_SetState} $CheckBox4 0
${Else}
${NSD_SetState} $CheckBox1 1
${NSD_SetState} $CheckBox2 1
${NSD_SetState} $CheckBox3 1
${NSD_SetState} $CheckBox4 1
${EndIf}
FunctionEnd
Function post
;снимаем статусы радибутонов:
${NSD_GetState} $RadioButton1 $rButton1
${NSD_GetState} $RadioButton2 $rButton2
${NSD_GetState} $RadioButton3 $rButton3
${NSD_GetState} $RadioButton4 $rButton4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;снимаем статусы чекбоксов:
${NSD_GetState} $CheckBox1 $Check1
${NSD_GetState} $CheckBox2 $Check2
${NSD_GetState} $CheckBox3 $Check3
${NSD_GetState} $CheckBox4 $Check4
FunctionEnd
Section ""
DetailPrint "состояние Чебокс_1 == $Check1"
DetailPrint "состояние Чебокс_2 == $Check2"
DetailPrint "состояние Чебокс_3 == $Check3"
DetailPrint "состояние Чебокс_4 == $Check4"
DetailPrint "========================================"
DetailPrint "========================================"
DetailPrint "состояние Группа_1, Радио_1 == $rButton1"
DetailPrint "состояние Группа_1, Радио_2 == $rButton2"
DetailPrint "состояние Группа_2, Радио_1 == $rButton3"
DetailPrint "состояние Группа_2, Радио_2 == $rButton4"
SectionEnd-
MKN
Re: [архив].: NSIS - все вопросы :.
Цитата sawe:
Вы не правильно поняли, я советовал вам подправить File Association.nsh и вам и другим стало бы легче!
Он по другому вообще функционирует. Хотя может попробую подумать...
Можете еще посмотреть оригинальный скрипт VLC Player. Там тот же макрос , что и в хедере задействован, только через функцию, что на мой взгляд более гибко, чем хедер переделывать.
Вы не правильно поняли, я советовал вам подправить File Association.nsh и вам и другим стало бы легче!
[архив].: NSIS - все вопросы :.
Он по другому вообще функционирует. Хотя может попробую подумать...
Можете еще посмотреть оригинальный скрипт VLC Player. Там тот же макрос , что и в хедере задействован, только через функцию, что на мой взгляд более гибко, чем хедер переделывать.
-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Цитата wolkow70:
Он по другому вообще функционирует. Хотя может попробую подумать...
Лёд потихоньку тронулся
Он по другому вообще функционирует. Хотя может попробую подумать...
[архив].: NSIS - все вопросы :.
Лёд потихоньку тронулся

-
MKN
Re: [архив].: NSIS - все вопросы :.
Цитата sawe:
Лёд потихоньку тронулся
тока неизвестно в какую сторону
Лёд потихоньку тронулся
[архив].: NSIS - все вопросы :.
тока неизвестно в какую сторону

-
kotkovets
Re: [архив].: NSIS - все вопросы :.
Я же только подумать обещал, а не сделать.
Реально попробовал с этим хедером работать. Намного более ограниченная вещь, чем переделанный макрос от сборки Aimp.
Реально попробовал с этим хедером работать. Намного более ограниченная вещь, чем переделанный макрос от сборки Aimp.
