PDA

Показать полную графическую версию : [архив].: NSIS - все вопросы :.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 [166] 167 168 169 170

CrashTest
24-10-2012, 22:34
kotkovets, еще один вопросик.
а WriteUninstaller "$INSTDIR\Uninstall.exe"
тоже надо писать два раза для 32 и 64? деинсталляторы тоже могут отличаться по разрядности?

программа »
Я имел ввиду HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Ключ реестра для «Установк и удаление программ»

shut
25-10-2012, 12:40
ну а далее как примером выше. Вообще в NSIS команды препроцессора начинаются с - !
смотрите подробно в справке...
---
получается типа динамический скрипт... »

Мне как раз нужен динамический скрипт.
У меня ситуация следующая:
- сборка инсталятора производится на сервере (запускается в командной строке через telnet)
- выполняется exe шник, который выкачивает файлы, список файлов и настройки этих файлов (ini файл) из svn
- далее производится сборка... в конечный инсталятор должны добавится только те файлы которые прописаны в списке с параметрами из ini файла (где лежит файл, куда он должен копироваться и с каким именем)

Справку я прочитал и справочник. Просто не нашёл необходимой мне структуры типа


!ifdef флаг_который_указывает_что_идёт_компиляция
; участок кода который выполнялся бы только при компиляции, а при выполнении игнорировался
!endif


И подскажите, пожалуйста, где можно по-подробнее почитать про InstallOptionsEx (по-русски). В справочнике (1.4) пока раздел не доделан.
Интересует возможность динамического изменения страницы. То есть есть ли Events у этих контроллов (например при изменении состояния DropList делать одни Label видимые а другие нет)

Спасибо!

kotkovets
25-10-2012, 16:19
!ifdef »
это означает, что если объявлена константа (!define 'name'), то выполнить определенные
указанные действия - конструкция времени компилирования.
И подскажите, пожалуйста, где можно по-подробнее почитать про InstallOptionsEx (по-русски). В справочнике (1.4) пока раздел не доделан.
Интересует возможность динамического изменения страницы. То есть есть ли Events у этих контроллов (например при изменении состояния DropList делать одни Label видимые а другие нет) »
Я не использую "семейство" InstallOptions, nsDialogs, на мой взгляд, в разы лучше..
Эти вопросы к K.A.V

shut
25-10-2012, 16:53
это означает, что если объявлена константа (!define 'name'), то выполнить определенные
указанные действия - конструкция времени компилирования. »

... это понятно. Вопрос: есть ли константа, которая определяет, идёт компиляция или выполнение?

shut
25-10-2012, 18:43
Я не использую "семейство" InstallOptions, nsDialogs, на мой взгляд, в разы лучше.. »

Подскажите как в DropList получить номер выбранной строки?
в ${NSD_OnChange} NSD_GetState возвращает всегда 0 , NSD_GetText возвращает строку
А мне нужен номер строки

kotkovets
25-10-2012, 19:57
... это понятно.
Вопрос ниочем...я уже ответил
Подскажите как в DropList получить номер выбранной строки? »
А с какой кстати и перепугу этот элемент должен возвращать номер строки?NSD_GetState возвращает всегда 0 »
Это событие для чекбоксов и радибутонов - возвращается статус отметки.
NSD_GetText возвращает строку
А мне нужен номер строки »
все верно! этим то и пользуйтесь, что возвращает NSD_GetText
!include "MUI2.nsh"

Page custom CustomInit
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

OutFile "view.exe"
ShowInstDetails show

var dlg
var drl

Function CustomInit
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateDropList} 0u 0u 50u 11u ``
pop $drl
${NSD_CB_AddString} $drl `7Z`
${NSD_CB_AddString} $drl `CAB`
${NSD_CB_AddString} $drl `ISO`
${NSD_CB_AddString} $drl `RAR`
${NSD_CB_SelectString} $drl `7Z`
${NSD_OnChange} $drl DropList
nsDialogs::Show
FunctionEnd

Function DropList
pop $drl
${NSD_GetText} $drl $0
${If} $0 == `7Z`
StrCpy $1 1
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `CAB`
StrCpy $1 2
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `ISO`
StrCpy $1 3
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `RAR`
StrCpy $1 4
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `ALL`
StrCpy $1 5
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${EndIf}
FunctionEnd

Section
SectionEnd

CrashTest
25-10-2012, 20:50
Отрыл скрипт по своей проблеме.
Такой вопрос.
WriteRegStr HKCR ".djv" "" "DjVu.Document" для чего нужны кавычки после djv?

CrashTest
25-10-2012, 22:21
${If} $RadioButton2_State == 1
StrCpy $INSTDIR "$DESKTOP"
MessageBox MB_OK "Должно быть"
${EndIf}

Почему redaio1 так же меняется на $desktop? неужели я не понятно написал ${IF} RADIO2??

shut
26-10-2012, 10:32
А с какой кстати и перепугу этот элемент должен возвращать номер строки?
Цитата shut:
NSD_GetState возвращает всегда 0 »
Это событие для чекбоксов и радибутонов - возвращается статус отметки.
Цитата shut:
NSD_GetText возвращает строку
А мне нужен номер строки »
все верно! этим то и пользуйтесь, что возвращает NSD_GetText
« скрыть
Код:
!include "MUI2.nsh"
Page custom CustomInit
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
OutFile "view.exe"
ShowInstDetails show
var dlg
var drl
Function CustomInit
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateDropList} 0u 0u 50u 11u ``
pop $drl
${NSD_CB_AddString} $drl `7Z`
${NSD_CB_AddString} $drl `CAB`
${NSD_CB_AddString} $drl `ISO`
${NSD_CB_AddString} $drl `RAR`
${NSD_CB_SelectString} $drl `7Z`
${NSD_OnChange} $drl DropList
nsDialogs::Show
FunctionEnd
Function DropList
pop $drl
${NSD_GetText} $drl $0
${If} $0 == `7Z`
StrCpy $1 1
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `CAB`
StrCpy $1 2
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `ISO`
StrCpy $1 3
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `RAR`
StrCpy $1 4
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${ElseIf} $0 == `ALL`
StrCpy $1 5
MessageBox MB_OK "$$1=$1$\n$\t$$0=$0" IDOK
${EndIf}
FunctionEnd
Section
SectionEnd »

Разобрался. Номер выделенной строки можно получить...


!include "MUI2.nsh"

Page custom CustomInit
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

OutFile "view.exe"
ShowInstDetails show

var dlg
var drl

Function CustomInit
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateDropList} 0u 0u 50u 11u ``
pop $drl
${NSD_CB_AddString} $drl `7Z`
${NSD_CB_AddString} $drl `CAB`
${NSD_CB_AddString} $drl `ISO`
${NSD_CB_AddString} $drl `RAR`
${NSD_CB_SelectString} $drl `7Z`
${NSD_OnChange} $drl DropList
nsDialogs::Show
FunctionEnd

Function DropList
SendMessage $drl ${CB_GETCURSEL} 0 0 $R0
MessageBox MB_OK "Номер выделенной строки: $R0"
FunctionEnd

Section
SectionEnd

kotkovets
26-10-2012, 23:08
WriteRegStr HKCR "Software\Classes\DjVu.Document\shell\open\ddeexec\IfExec "" "[rem open]"»
А вы с кем общаетесь? заведите свой блог и там выкладываете свои монологи ... :lol:
WriteRegStr HKCR "Software\Classes\DjVu.Document\shell\open\ddeexec\IfExec "" "[rem open]"
что в этой строке не так? »
справку читайте до слез может поможет.. :biggrin:
правильно:
WriteRegStr HKCR "Software\Classes\DjVu.Document\shell\open\ddeexec\IfExec" "" "[rem open]"
---
не засоряйте тему! не нарушайте правила форума, которые вы не читали!
Иначе сообщу модератору..

CrashTest
27-10-2012, 16:53
Прочитал
Часто возникает необходимость перезагрузки после инсталляции вашего приложения. Данная поддержка включается,
если у вас в инсталляторе включен флаг:

SetRebootFlag true


Так же, включается поддержка, если во время инсталяции, нужно удалить файл,
но файл, по каким либо причинам не удаляется, или вам нужно этот файл удалить после перегрузки ПК.

Delete /REBOOTOK файл



А можно сделать так чтобы установщик после установки/удаления показывал сообщение о том что необходим перезапуск?

Можно ли использовать вместе /r и /REBOOTOK?

kotkovets
27-10-2012, 17:15
CrashTest, последнее китайское предупреждение!
Оформление->Интерфейс Модерн->» Страница "Завершения"
===
Прежде, чем писать тысячу раз подумайте, а стоит ли?
А вот шапку темы стоит почитать:
ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов:
Справочник по NSIS - создан силами нашего сообщества.
---
на глупый вопрос - глупый ответ...

CrashTest
27-10-2012, 17:36
kotkovets, я прочитал в справке много чего. а именно
Оформление->Интерфейс Модерн->» Страница "Завершения"
свой ответ не нашел.

в самом начале вы с удовольствием отвечали на самые откровенные идиотские вопросы и улыбались. я спрашиваю потому что этого не могу найти.
если это написано - просто скажите где. не проще будет? и все будут счастливы. глупый вопрос для вас.

kotkovets
27-10-2012, 18:01
просто скажите где. не проще будет? и все будут счастливы. глупый вопрос для вас. »
здесь не форум смазливых барышень, а компьютерный форум...
свой ответ не нашел. »
вот я нашел, в вам религия не позволяет?
» IfRebootFlag: определяет флаг перезагрузки
---
прошу сюда не писать, а читать - полезнее будет - именно для вас персольно.

yyv
29-10-2012, 15:06
как в НСИС в не юникодной сборке показать список?
В том смысле, что поставить точки, кружочки или галочки какие нить перед каждым элементом (сейчас использую тире, но это немного не устраивает)
конкретизирую, как в НСИС использовать Hex escape?
и еще...
Можно ли в нсис "украшать" MessageBox? вставить картинку, изменить размер, переименовать кнопки? или возможность использовать не стандартные сообщения? Может существуют какие нибудь плагины?

CrashTest
29-10-2012, 20:37
есть чекбокс который устанавливает дополнительные файлы надо чтобы при удаление срабатывало условие если если это отмечено - удалять дополнительные файлы. если нет - то нет. делал это в секции Uninstall что то не работает.

MKN
30-10-2012, 13:40
в секции Uninstall что то не работает »
И не должно. Как уже сто раз говорили, install.exe и uninstall.exe - две разные программы.
Если нужны зависимости при удалении, то можно добавить MUI_UNPAGE_COMPONENTS или, что ещё проще, запрос-сообщение перед удалением - что удалять, а что нет. И удалять, согласно выбора (сообразно индетификаторов кнопок).

diakov
01-11-2012, 23:13
kotkovets, подскажите...

${Switch} ${extenstion}
${Case} "ASF"
StrCpy $IconIndex 0
${Break}

${Case} "AVI"
StrCpy $IconIndex 2
${Break}

${Case} "WMV"
StrCpy $IconIndex 17
${Break}

${Case} "FLV"
StrCpy $IconIndex 111
${Break}

${Case} "MKV"
StrCpy $IconIndex 30
${Break}

${Case} "MOV"
StrCpy $IconIndex 8
${Break}

${Case} "3GP"
StrCpy $IconIndex 48
${Break}

${Case} "DIVX"
StrCpy $IconIndex 56
${Break}

${Case} "MP4"
StrCpy $IconIndex 43
${Break}

${Case} "MPG"
StrCpy $IconIndex 12
${Break}

${Case} "MPEG"
StrCpy $IconIndex 11
${Break}

${Case} "MPE"
StrCpy $IconIndex 10
${Break}

${Case} "DAT"
StrCpy $IconIndex 3
${Break}

${Case} "VOB"
StrCpy $IconIndex 14
${Break}

${Case} "IFO"
StrCpy $IconIndex 40
${Break}

${Case} "M1V"
StrCpy $IconIndex 4
${Break}

${Case} "M2V"
StrCpy $IconIndex 5
${Break}

${Case} "M4V"
StrCpy $IconIndex 70
${Break}

${Case} "MMS"
StrCpy $IconIndex 14
${Break}

${Case} "OGM"
StrCpy $IconIndex 29
${Break}

${Case} "QT"
StrCpy $IconIndex 13
${Break}

${Case} "TS"
StrCpy $IconIndex 99
${Break}

${Case} "VP6"
StrCpy $IconIndex 101
${Break}

${Case} "XVID"
StrCpy $IconIndex 109
${Break}

${Case} "3G2"
StrCpy $IconIndex 47
${Break}

${Case} "TP"
StrCpy $IconIndex 97
${Break}

${Case} "AVI-Neo"
StrCpy $IconIndex 39
${Break}

${Case} "BIK"
StrCpy $IconIndex 52
${Break}

${Case} "D2V"
StrCpy $IconIndex 55
${Break}

${Case} "DRC"
StrCpy $IconIndex 57
${Break}

${Case} "IFV"
StrCpy $IconIndex 66
${Break}

${Case} "MP2V"
StrCpy $IconIndex 78
${Break}

${Case} "MPV2"
StrCpy $IconIndex 81
${Break}

${Case} "MQV"
StrCpy $IconIndex 82
${Break}

${Case} "PART"
StrCpy $IconIndex 86
${Break}

${Case} "PSS"
StrCpy $IconIndex 87
${Break}

${Case} "ROQ"
StrCpy $IconIndex 90
${Break}

${Case} "SMK"
StrCpy $IconIndex 94
${Break}

${Case} "TPR"
StrCpy $IconIndex 98
${Break}

${Case} "TRP"
StrCpy $IconIndex 110
${Break}

${Case} "DVR-MS"
StrCpy $IconIndex 114
${Break}

${Case} "GVI"
StrCpy $IconIndex 115
${Break}

${Case} "NSV"
StrCpy $IconIndex 117
${Break}

${Case} "PMP"
StrCpy $IconIndex 118
${Break}

${Case} "VP7"
StrCpy $IconIndex 120
${Break}

${Case} "VC1"
StrCpy $IconIndex 138
${Break}

${Case} "264"
StrCpy $IconIndex 127
${Break}

${Case} "H264"
StrCpy $IconIndex 131
${Break}
;....................................................................................
; audio
${Case} "MP3"
StrCpy $IconIndex 9
${Break}

${Case} "AAC"
StrCpy $IconIndex 42
${Break}

${Case} "WMA"
StrCpy $IconIndex 16
${Break}

${Case} "CDA"
StrCpy $IconIndex 54
${Break}

${Case} "FLAC"
StrCpy $IconIndex 41
${Break}

${Case} "M4A"
StrCpy $IconIndex 69
${Break}

${Case} "MID"
StrCpy $IconIndex 6
${Break}

${Case} "MKA"
StrCpy $IconIndex 72
${Break}

${Case} "MP2"
StrCpy $IconIndex 77
${Break}

${Case} "MPA"
StrCpy $IconIndex 79
${Break}

${Case} "MPC"
StrCpy $IconIndex 45
${Break}

${Case} "APE"
StrCpy $IconIndex 44
${Break}

${Case} "OFR"
StrCpy $IconIndex 85
${Break}

${Case} "OGG"
StrCpy $IconIndex 28
${Break}

${Case} "WV"
StrCpy $IconIndex 121
${Break}

${Case} "AC3"
StrCpy $IconIndex 46
${Break}

${Case} "DTS"
StrCpy $IconIndex 58
${Break}

${Case} "WAV"
StrCpy $IconIndex 15
${Break}

${Case} "AIFF"
StrCpy $IconIndex 50
${Break}

${Case} "AIFC"
StrCpy $IconIndex 49
${Break}

${Case} "AU"
StrCpy $IconIndex 51
${Break}

${Case} "AMR"
StrCpy $IconIndex 123
${Break}

${Case} "IT"
StrCpy $IconIndex 65
${Break}

${Case} "M2A"
StrCpy $IconIndex 68
${Break}

${Case} "MO3"
StrCpy $IconIndex 75
${Break}

${Case} "MTM"
StrCpy $IconIndex 83
${Break}

${Case} "S3M"
StrCpy $IconIndex 93
${Break}

${Case} "MIDI"
StrCpy $IconIndex 71
${Break}

${Case} "M1A"
StrCpy $IconIndex 67
${Break}

${Case} "MOD"
StrCpy $IconIndex 76
${Break}

${Case} "RMI"
StrCpy $IconIndex 89
${Break}

${Case} "SND"
StrCpy $IconIndex 95
${Break}

${Case} "UMX"
StrCpy $IconIndex 100
${Break}

${Case} "XM"
StrCpy $IconIndex 108
${Break}

${Case} "ARM"
StrCpy $IconIndex 112
${Break}

${Case} "AVC-TS"
StrCpy $IconIndex 113
${Break}

${Case} "SHN"
StrCpy $IconIndex 119
${Break}

${Case} "WV"
StrCpy $IconIndex 121
${Break}

${Case} "EC3"
StrCpy $IconIndex 129
${Break}

${Case} "EAC3"
StrCpy $IconIndex 128
${Break}

${Case} "EVO"
StrCpy $IconIndex 130
${Break}

${Case} "LPCM"
StrCpy $IconIndex 132
${Break}

${Case} "MLP"
StrCpy $IconIndex 133
${Break}

${Case} "MT9"
StrCpy $IconIndex 134
${Break}

${Case} "PCM"
StrCpy $IconIndex 135
${Break}

${Case} "THD"
StrCpy $IconIndex 139
${Break}
;....................................................................................
; subtitles

${Case} "SMI"
StrCpy $IconIndex 18
${Break}

${Case} "RT"
StrCpy $IconIndex 31
${Break}

${Case} "SUB"
StrCpy $IconIndex 32
${Break}

${Case} "IDX"
StrCpy $IconIndex 33
${Break}

${Case} "ASS"
StrCpy $IconIndex 34
${Break}

${Case} "SSA"
StrCpy $IconIndex 35
${Break}

${Case} "RSB"
StrCpy $IconIndex 36
${Break}

${Case} "SRT"
StrCpy $IconIndex 37
${Break}

${Case} "S2K"
StrCpy $IconIndex 38
${Break}

${Case} "MKS"
StrCpy $IconIndex 73
${Break}
;....................................................................................
; playlists
${Case} "ASX"
StrCpy $IconIndex 1
${Break}

${Case} "WAX"
StrCpy $IconIndex 102
${Break}

${Case} "M3U"
StrCpy $IconIndex 20
${Break}

${Case} "PLS"
StrCpy $IconIndex 19
${Break}

${Case} "WMX"
StrCpy $IconIndex 105
${Break}

${Case} "WPL"
StrCpy $IconIndex 106
${Break}

${Case} "WVX"
StrCpy $IconIndex 107
${Break}

;....................................................................................
; real media
${Case} "RA"
StrCpy $IconIndex 21
${Break}

${Case} "RM"
StrCpy $IconIndex 22
${Break}

${Case} "RMJ"
StrCpy $IconIndex 23
${Break}

${Case} "RMS"
StrCpy $IconIndex 24
${Break}

${Case} "RAM"
StrCpy $IconIndex 25
${Break}

${Case} "RMM"
StrCpy $IconIndex 26
${Break}

${Case} "RMVB"
StrCpy $IconIndex 27
${Break}

${Case} "RPM"
StrCpy $IconIndex 91
${Break}

${Case} "RV"
StrCpy $IconIndex 82
${Break}

;....................................................................................
; other
${Case} "FLC"
StrCpy $IconIndex 59
${Break}

${Case} "FLI"
StrCpy $IconIndex 60
${Break}

${Case} "FLIC"
StrCpy $IconIndex 61
${Break}

${Case} "PVA"
StrCpy $IconIndex 88
${Break}

${Case} "SWF"
StrCpy $IconIndex 96
${Break}

${Case} "WM"
StrCpy $IconIndex 103
${Break}

${Case} "K3G"
StrCpy $IconIndex 122
${Break}

${Case} "M2T"
StrCpy $IconIndex 124
${Break}

${Case} "MTS"
StrCpy $IconIndex 125
${Break}

${Case} "SKM"
StrCpy $IconIndex 126
${Break}

${Case} "PMF"
StrCpy $IconIndex 136
${Break}

${Case} "M2TS"
StrCpy $IconIndex 116
${Break}

${Case} "KPL"
StrCpy $IconIndex 0
${Break}

${Case} "KSF"
StrCpy $IconIndex 0
${Break}

При вставке такого кода компилятор выдает ошибку Out of memory скрипт загрузить весь не могу много символов в чем может быть проблему!

Вот как бы полная часть кода

!macro RegisterExtension extenstion
;create a class for extesion
StrCpy $ClassName "The KMPlayer.${extenstion}"
WriteRegStr HKCR "${extenstion}" "" "$ClassName"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice" "Progid" "$ClassName"
noaudio:*/
WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$ClassName"
WriteRegStr HKCR "$ClassName\shell\open" "" "Îòêðûòü â KMPlayer"
WriteRegStr HKCR "$ClassName\shell\open\command" "" "$OpenCommand"
${Switch} ${extenstion}
${Case} "ASF"
StrCpy $IconIndex 0
${Break}

${Case} "AVI"
StrCpy $IconIndex 2
${Break}

${Case} "WMV"
StrCpy $IconIndex 17
${Break}

${Case} "FLV"
StrCpy $IconIndex 111
${Break}

${Case} "MKV"
StrCpy $IconIndex 30
${Break}

${Case} "MOV"
StrCpy $IconIndex 8
${Break}

${Case} "3GP"
StrCpy $IconIndex 48
${Break}

${Case} "DIVX"
StrCpy $IconIndex 56
${Break}

${Case} "MP4"
StrCpy $IconIndex 43
${Break}

${Case} "MPG"
StrCpy $IconIndex 12
${Break}

${Case} "MPEG"
StrCpy $IconIndex 11
${Break}

${Case} "MPE"
StrCpy $IconIndex 10
${Break}

${Case} "DAT"
StrCpy $IconIndex 3
${Break}

${Case} "VOB"
StrCpy $IconIndex 14
${Break}

${Case} "IFO"
StrCpy $IconIndex 40
${Break}

${Case} "M1V"
StrCpy $IconIndex 4
${Break}

${Case} "M2V"
StrCpy $IconIndex 5
${Break}

${Case} "M4V"
StrCpy $IconIndex 70
${Break}

${Case} "MMS"
StrCpy $IconIndex 14
${Break}

${Case} "OGM"
StrCpy $IconIndex 29
${Break}

${Case} "QT"
StrCpy $IconIndex 13
${Break}

${Case} "TS"
StrCpy $IconIndex 99
${Break}

${Case} "VP6"
StrCpy $IconIndex 101
${Break}

${Case} "XVID"
StrCpy $IconIndex 109
${Break}

${Case} "3G2"
StrCpy $IconIndex 47
${Break}

${Case} "TP"
StrCpy $IconIndex 97
${Break}

${Case} "AVI-Neo"
StrCpy $IconIndex 39
${Break}

${Case} "BIK"
StrCpy $IconIndex 52
${Break}

${Case} "D2V"
StrCpy $IconIndex 55
${Break}

${Case} "DRC"
StrCpy $IconIndex 57
${Break}

${Case} "IFV"
StrCpy $IconIndex 66
${Break}

${Case} "MP2V"
StrCpy $IconIndex 78
${Break}

${Case} "MPV2"
StrCpy $IconIndex 81
${Break}

${Case} "MQV"
StrCpy $IconIndex 82
${Break}

${Case} "PART"
StrCpy $IconIndex 86
${Break}

${Case} "PSS"
StrCpy $IconIndex 87
${Break}

${Case} "ROQ"
StrCpy $IconIndex 90
${Break}

${Case} "SMK"
StrCpy $IconIndex 94
${Break}

${Case} "TPR"
StrCpy $IconIndex 98
${Break}

${Case} "TRP"
StrCpy $IconIndex 110
${Break}

${Case} "DVR-MS"
StrCpy $IconIndex 114
${Break}

${Case} "GVI"
StrCpy $IconIndex 115
${Break}

${Case} "NSV"
StrCpy $IconIndex 117
${Break}

${Case} "PMP"
StrCpy $IconIndex 118
${Break}

${Case} "VP7"
StrCpy $IconIndex 120
${Break}

${Case} "VC1"
StrCpy $IconIndex 138
${Break}

${Case} "264"
StrCpy $IconIndex 127
${Break}

${Case} "H264"
StrCpy $IconIndex 131
${Break}
;....................................................................................
; audio
${Case} "MP3"
StrCpy $IconIndex 9
${Break}

${Case} "AAC"
StrCpy $IconIndex 42
${Break}

${Case} "WMA"
StrCpy $IconIndex 16
${Break}

${Case} "CDA"
StrCpy $IconIndex 54
${Break}

${Case} "FLAC"
StrCpy $IconIndex 41
${Break}

${Case} "M4A"
StrCpy $IconIndex 69
${Break}

${Case} "MID"
StrCpy $IconIndex 6
${Break}

${Case} "MKA"
StrCpy $IconIndex 72
${Break}

${Case} "MP2"
StrCpy $IconIndex 77
${Break}

${Case} "MPA"
StrCpy $IconIndex 79
${Break}

${Case} "MPC"
StrCpy $IconIndex 45
${Break}

${Case} "APE"
StrCpy $IconIndex 44
${Break}

${Case} "OFR"
StrCpy $IconIndex 85
${Break}

${Case} "OGG"
StrCpy $IconIndex 28
${Break}

${Case} "WV"
StrCpy $IconIndex 121
${Break}

${Case} "AC3"
StrCpy $IconIndex 46
${Break}

${Case} "DTS"
StrCpy $IconIndex 58
${Break}

${Case} "WAV"
StrCpy $IconIndex 15
${Break}

${Case} "AIFF"
StrCpy $IconIndex 50
${Break}

${Case} "AIFC"
StrCpy $IconIndex 49
${Break}

${Case} "AU"
StrCpy $IconIndex 51
${Break}

${Case} "AMR"
StrCpy $IconIndex 123
${Break}

${Case} "IT"
StrCpy $IconIndex 65
${Break}

${Case} "M2A"
StrCpy $IconIndex 68
${Break}

${Case} "MO3"
StrCpy $IconIndex 75
${Break}

${Case} "MTM"
StrCpy $IconIndex 83
${Break}

${Case} "S3M"
StrCpy $IconIndex 93
${Break}

${Case} "MIDI"
StrCpy $IconIndex 71
${Break}

${Case} "M1A"
StrCpy $IconIndex 67
${Break}

${Case} "MOD"
StrCpy $IconIndex 76
${Break}

${Case} "RMI"
StrCpy $IconIndex 89
${Break}

${Case} "SND"
StrCpy $IconIndex 95
${Break}

${Case} "UMX"
StrCpy $IconIndex 100
${Break}

${Case} "XM"
StrCpy $IconIndex 108
${Break}

${Case} "ARM"
StrCpy $IconIndex 112
${Break}

${Case} "AVC-TS"
StrCpy $IconIndex 113
${Break}

${Case} "SHN"
StrCpy $IconIndex 119
${Break}

${Case} "WV"
StrCpy $IconIndex 121
${Break}

${Case} "EC3"
StrCpy $IconIndex 129
${Break}

${Case} "EAC3"
StrCpy $IconIndex 128
${Break}

${Case} "EVO"
StrCpy $IconIndex 130
${Break}

${Case} "LPCM"
StrCpy $IconIndex 132
${Break}

${Case} "MLP"
StrCpy $IconIndex 133
${Break}

${Case} "MT9"
StrCpy $IconIndex 134
${Break}

${Case} "PCM"
StrCpy $IconIndex 135
${Break}

${Case} "THD"
StrCpy $IconIndex 139
${Break}
;....................................................................................
; subtitles

${Case} "SMI"
StrCpy $IconIndex 18
${Break}

${Case} "RT"
StrCpy $IconIndex 31
${Break}

${Case} "SUB"
StrCpy $IconIndex 32
${Break}

${Case} "IDX"
StrCpy $IconIndex 33
${Break}

${Case} "ASS"
StrCpy $IconIndex 34
${Break}

${Case} "SSA"
StrCpy $IconIndex 35
${Break}

${Case} "RSB"
StrCpy $IconIndex 36
${Break}

${Case} "SRT"
StrCpy $IconIndex 37
${Break}

${Case} "S2K"
StrCpy $IconIndex 38
${Break}

${Case} "MKS"
StrCpy $IconIndex 73
${Break}
;....................................................................................
; playlists
${Case} "ASX"
StrCpy $IconIndex 1
${Break}

${Case} "WAX"
StrCpy $IconIndex 102
${Break}

${Case} "M3U"
StrCpy $IconIndex 20
${Break}

${Case} "PLS"
StrCpy $IconIndex 19
${Break}

${Case} "WMX"
StrCpy $IconIndex 105
${Break}

${Case} "WPL"
StrCpy $IconIndex 106
${Break}

${Case} "WVX"
StrCpy $IconIndex 107
${Break}

;....................................................................................
; real media
${Case} "RA"
StrCpy $IconIndex 21
${Break}

${Case} "RM"
StrCpy $IconIndex 22
${Break}

${Case} "RMJ"
StrCpy $IconIndex 23
${Break}

${Case} "RMS"
StrCpy $IconIndex 24
${Break}

${Case} "RAM"
StrCpy $IconIndex 25
${Break}

${Case} "RMM"
StrCpy $IconIndex 26
${Break}

${Case} "RMVB"
StrCpy $IconIndex 27
${Break}

${Case} "RPM"
StrCpy $IconIndex 91
${Break}

${Case} "RV"
StrCpy $IconIndex 82
${Break}

;....................................................................................
; other
${Case} "FLC"
StrCpy $IconIndex 59
${Break}

${Case} "FLI"
StrCpy $IconIndex 60
${Break}

${Case} "FLIC"
StrCpy $IconIndex 61
${Break}

${Case} "PVA"
StrCpy $IconIndex 88
${Break}

${Case} "SWF"
StrCpy $IconIndex 96
${Break}

${Case} "WM"
StrCpy $IconIndex 103
${Break}

${Case} "K3G"
StrCpy $IconIndex 122
${Break}

${Case} "M2T"
StrCpy $IconIndex 124
${Break}

${Case} "MTS"
StrCpy $IconIndex 125
${Break}

${Case} "SKM"
StrCpy $IconIndex 126
${Break}

${Case} "PMF"
StrCpy $IconIndex 136
${Break}

${Case} "M2TS"
StrCpy $IconIndex 116
${Break}

${Case} "KPL"
StrCpy $IconIndex 0
${Break}

${Case} "KSF"
StrCpy $IconIndex 0
${Break}
;....................................................................................
; ddefault icon
${Default}
StrCpy $IconIndex 0
${Break}

${EndSwitch}
WriteRegStr HKCR "$ClassName\DefaultIcon" "" "$IconFile,$IconIndex"
!macroend

!macro UnRegisterExtension extenstion
StrCpy $ClassName "The KMPlayer.${extenstion}"
ReadRegStr $0 HKCR "${extenstion}" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCR "$ClassName"
ReadRegStr $0 HKCR "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice"

ReadRegStr $0 HKCR ".${extenstion}" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCR "$ClassName"

ReadRegStr $0 HKCR "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
!macroend

diakov
02-11-2012, 00:23
Получается что скрипт как бы зацикливаться на данном участке кода

Соответственно к чекбоксу привязал так

Section "-VIDEO"
${If} $Check1 == 1

!insertmacro RegisterExtension ASF

!insertmacro RegisterExtension AVI

!insertmacro RegisterExtension "WMV"

!insertmacro RegisterExtension "FLV"

!insertmacro RegisterExtension "MKV"

!insertmacro RegisterExtension "MOV"

!insertmacro RegisterExtension "3GP"

!insertmacro RegisterExtension "DIVX"

!insertmacro RegisterExtension "MP4"

!insertmacro RegisterExtension "MPG"

!insertmacro RegisterExtension "MPEG"

!insertmacro RegisterExtension "MPE"

!insertmacro RegisterExtension "DAT"

!insertmacro RegisterExtension "VOB"

!insertmacro RegisterExtension "IFO"

!insertmacro RegisterExtension "M1V"

!insertmacro RegisterExtension "M2V"

!insertmacro RegisterExtension "M4V"

!insertmacro RegisterExtension "MMS"

!insertmacro RegisterExtension "OGM"

!insertmacro RegisterExtension "QT"

!insertmacro RegisterExtension "TS"

!insertmacro RegisterExtension "VP6"

!insertmacro RegisterExtension "XVID"

!insertmacro RegisterExtension "3G2"

!insertmacro RegisterExtension "TP"

!insertmacro RegisterExtension "AVI-Neo"

!insertmacro RegisterExtension "BIK"

!insertmacro RegisterExtension "D2V"

!insertmacro RegisterExtension "DRC"

!insertmacro RegisterExtension "IFV"

!insertmacro RegisterExtension "MP2V"

!insertmacro RegisterExtension "MPV2"

!insertmacro RegisterExtension "MQV"

!insertmacro RegisterExtension "PART"

!insertmacro RegisterExtension "PSS"

!insertmacro RegisterExtension "ROQ"

!insertmacro RegisterExtension "SMK"

!insertmacro RegisterExtension "TPR"

!insertmacro RegisterExtension "TRP"

!insertmacro RegisterExtension "DVR-MS"

!insertmacro RegisterExtension "GVI"

!insertmacro RegisterExtension "NSV"

!insertmacro RegisterExtension "PMP"

!insertmacro RegisterExtension "VP7"

!insertmacro RegisterExtension "264"

!insertmacro RegisterExtension "H264"

!insertmacro RegisterExtension "VC1"
${EndIf}

kotkovets
02-11-2012, 01:22
При вставке такого кода компилятор выдает ошибку Out of memory скрипт загрузить весь не могу много символов в чем может быть проблему! »
В редакторе HM NIS переполнение...
компилируйте с помощью - makensisw.exe
или сразу консолью - makensis.exe




© OSzone.net 2001-2012