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

Комсомолец
03-04-2009, 11:15
hb860, может уточнишь что именно? я строк 20 скрипта правил по ее подсказкам-так и не добился ничего((

volk1234, спасибо за оформление темы и ссылки! Прикрепи, пожалуйста, и ISS2NSI (http://prdownloads.sourceforge.net/hmne/iss2nsi10a1.zip?download) в ссылки.

Комсомолец
03-04-2009, 11:35
вложение удалено.

Serega
03-04-2009, 11:41
Комсомолец, спасибо! скачал!

hb860
04-04-2009, 17:27
Комсомолец, что именно мне уточнить ?

Комсомолец
04-04-2009, 20:10
hb860, как перегнать iss в nsi.

hb860
05-04-2009, 13:28
==================
ISS2NSI v1.0a2
==================
ISS2NSI is a tool for convert Inno Setup script files into NSIS script files.


Usage:
==================
Program:
At the command prompt write: iss2nsi issscript.iss [nsiscript.nsi]
if nsiscript.nsi is no specified then the converted script will be
saved with the same name of the issscript.iss but with extension .nsi.

NIS Edit Plugin:
1- Close HM NIS Edit.
2- Put hmne_iss2nsi.dll in the plugins directory
(Default $PROGRAMFILES\HMSoft\NIS Edit\Plugins)
3- Start HM NIS Edit.
4- You will found a new item in the tools menu called "Convert InnoSetup script".

Это из оффициального мануала

Serega
05-04-2009, 14:03
hb860, извините, но решил повторить ваше сообщение, переведя его на русский, насколько я понял:
==================
ISS2NSI v1.0a2
==================
ISS2NSI - инструмент для преобразования скрипта Inno Setup в скрипт NSIS.

Использование:
==================
Программа:
В командной строке запишите: iss2nsi issscript.iss [nsiscript.nsi]
если nsiscript.nsi не будет указан, тогда преобразованный скрипт будет сохранен с тем же самым именем issscript.iss, но с расширением.nsi
Плагин NIS Edit:
1- Закройте HM NIS Edit.
2- Разместите файл hmne_iss2nsi.dll в каталоге с плагинами (по умолчанию $PROGRAMFILES\HMSoft\NIS Edit\Plugins)
3- Запустите HM NIS Edit.
4- Вы увидите новый элемент в меню инструментов "Преобразование скрипта InnoSetup".

Комсомолец
05-04-2009, 14:13
hb860, Serega_, я это давно сделал. Но при попытке конвертировать скрипт всегда шибка. Причем даже устранение ошибки в ISS не помогает((

Serega
05-04-2009, 14:40
Комсомолец, прежде всего, так тяжело понять о чём речь...
Вы можете привести конкретный пример, а именно пример скрипта ISS и пример уже преобразованного скрипта в формат NSIS. Я думаю, так будет наглядней.

Комсомолец
05-04-2009, 15:40
Serega_, да забил я на это и удалил их уже. лучше дальше нсис буду юзать.

volk1234
06-04-2009, 01:19
Комсомолец
Добавил, спасибо ! Даже такие есть конверторы...
Надеюсь ничего, что с задержкой.

Комсомолец
06-04-2009, 01:33
volk1234, отлично то, что вообще за тему кто-то взялся! А остальное не так и важно)))

Комсомолец
06-04-2009, 14:12
Всё не успокоюсь насчет The KMPlayer. Кто поможет с оптимизацией?


!define PRODUCT_NAME "The KMPlayer"
!define PRODUCT_VERSION "2.9.3.1428"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "Created by My, 2009"
!define Publisher "http://www.Site.ru/"
!define Contact "Комсомолец"
!define HelpLink "http://www.kmplayer.com/forums/index.php/"
!define URLInfoAbout "http://www.kmplayer.com/forums/index.php/"
!define URLUpdateInfo "http://www.kmplayer.com/forums/index.php/"
!define Comments "Отличный корейский мультимедийный плеер!"

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"

SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "E:\NSIS\KMP player\kmp.ico"
!define MUI_UNICON "E:\NSIS\KMP player\kmp.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro RefreshShellIcons

BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}_${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
ShowInstDetails show
ShowUnInstDetails show

InstType "Полная"
InstType "Сокращенная"

Section "!${PRODUCT_NAME}" idx0
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File /r "E:\NSIS\KMP player\kmp-setup-silent\*.*"
;=================================================================================================== ===
WriteUninstaller "$OUTDIR\Удалить.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\KMPlayer.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\Удалить.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${Publisher}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Contact" "${Contact}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "${HelpLink}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${URLInfoAbout}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${URLUpdateInfo}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Comments" "${Comments}"
SetShellVarContext current
SectionEnd
;=================================================================================================== ===
SectionGroup /e "Ярлыки"
Section "Ярлыки в меню Пуск" idx1
SectionIn 1 2
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\KMPlayer.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\Удалить.exe"
SectionEnd

Section "Ярлыки в панели быстрого запуска" idx2
SectionIn 1 2
SetShellVarContext all
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\KMPlayer.exe"
SectionEnd

Section "Ярлык на рабочем столе" idx3
SectionIn 1
IfSilent +3
SetShellVarContext all
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\KMPlayer.exe"
SectionEnd
SectionGroupEnd
;=================================================================================================== ===
Section "Скины" idx4
SectionIn 1
SetOutPath "$INSTDIR\Skins"
File /r "E:\NSIS\KMP player\Skins\*.*"
SectionEnd
;=================================================================================================== ===
Section "Мастер настройки" idx5
SectionIn 1
SetOutPath "$INSTDIR\"
File "E:\NSIS\KMP player\wizard\KMPSetup.exe"
SetShellVarContext all
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Мастер настройки.lnk" "$INSTDIR\KMPSetup.exe"
SectionEnd
;=================================================================================================== ===
Section "Ассоциировать" idx6
SectionIn 1 2
SetOutPath "$INSTDIR\"
File "E:\NSIS\KMP player\Assoc.exe"
ExecWait '$INSTDIR\Assoc.exe'
Delete '$INSTDIR\Assoc.exe'

; заготовка на будущее-доделаю файл ассоциаций
;!include "assoc.nsh"
${RefreshShellIcons}
SectionEnd
;=================================================================================================== ===

Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd

Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
Abort
FunctionEnd

Section Uninstall
!include "unregassoc.nsh"
${RefreshShellIcons}
RMDir /r "$INSTDIR\"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd



unregassoc.nsh во вложении

Для ассоциациий взял пример с темы плеера на inno. Там sfx-архив рапаковывается в темп и добавляет записи в реестр (которые unregassoc.nsh как раз и удаляет). Архив во вложении (.exe форум не разрешает, поэтому упаковал). Начал переводить его в формат nsis, но пока нет времени продолжать.



WriteRegStr HKCR "DVD\shell" "" "The KMPlayer"
WriteRegStr HKCR "DVD\shell\The KMPlayer\command" "" "\$\"$INSTDIR\KMPlayer.exe\$\" \$\"%1\$\"" /dvd"

WriteRegStr HKCR "AudioCD\shell" "" "The KMPlayer"
WriteRegStr HKCR "AudioCD\shell\The KMPlayer\command" "" "\$\"$INSTDIR\KMPlayer.exe\$\" \$\"%1\$\"" /cd"

WriteRegStr HKCU "Software\KMPlayer\KMP2.0\OptionArea" "InstallPath" "$INSTDIR\KMPlayer.exe"
WriteRegStr HKCU "Software\KMPlayer\KMP2.0\OptionArea" "SkinFolder" "Vista-Blue.ksf"
WriteRegStr HKCU "Software\KMPlayer\KMP2.0\OptionArea" "LanguageIniName" "Russian.ini"

WriteRegStr HKCR ".3gp" "" "KMPlayer.3gp"
WriteRegStr HKCR ".3gp\DefaultIcon" "" "$INSTDIR\KIconLib.dll,48"
WriteRegStr HKCR ".3gp" "KMPlayer.3gp" "KMP - Видеофайл 3GP"
WriteRegStr HKCR ".3gp\shell\open" "" "&Open"
WriteRegStr HKCR ".3gp\shell\open\command" "" "\$\"$INSTDIR\KMPlayer.exe\$\" \$\"%1\$\""
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.3GP" "Progid" "KMPlayer.3gp"

WriteRegStr HKCR ".asf" "" "KMPlayer.asf"
WriteRegStr HKCR ".asf\DefaultIcon" "" "$INSTDIR\KIconLib.dll,0"
WriteRegStr HKCR ".asf" "KMPlayer.asf" "KMP - Видеофайл asf"
WriteRegStr HKCR ".asf\shell\open" "" "&Open"
WriteRegStr HKCR ".asf\shell\open\command" "" "\$\"$INSTDIR\KMPlayer.exe\$\" \$\"%1\$\""
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.asf" "Progid" "KMPlayer.asf"



Мусору в скрипте достаточно. Буду рад помощи...

hb860
06-04-2009, 20:47
Комсомолец, удали строку №65, она ни к чему
А ассоциации сдери из аимпа, там универсальная функция. Куда удобней чем файлики подключать
Примерно так:

;custom filetype registration function
!macro RegisterExtension extenstion
;create a class for extesion
StrCpy $ClassName "KMPLAYER.${extenstion}"
WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
WriteRegStr HKCR "$ClassName" "" "Файл KMPLAYER: ${extenstion}"
WriteRegStr HKCR "$ClassName\shell\open" "" "Открыть в AIMP2"
WriteRegStr HKCR "$ClassName\shell\open\command" "" "$OpenCommand"
;define icon for class
${Switch} ${extenstion}
${Case} "3GP"
StrCpy $IconIndex 0
${Break}
;mp3 group
${Case} "AVI"
StrCpy $IconIndex 1
${Break}
....................................................................................
${Default}
StrCpy $IconIndex 4
${Break}
${EndSwitch}
WriteRegStr HKCR "$ClassName\DefaultIcon" "" "$IconFile,$IconIndex"
!macroend

Комсомолец
07-04-2009, 02:01
hb860, ок. посмотрю.

▬ Господа! Избегайе такого затратного использования постов! Можно же отписатся по результатам. Неужто комуто интересно будет читать 50 страниц постов - Я сейчас чай пью и тд ....Давайте боротся за форум высокой культуры слога! - Ваш volk1234

volk1234, вот и результат (http://forum.oszone.net/thread-137410.html) :)

А вот и все в одном посте Комсомолец ! :)

Impeck
24-04-2009, 23:13
Доброго времени суток.
Подскажите, как прописать ключ в реестр такого вида:

[HKEY_LOCAL_MACHINE\SOFTWARE\Компания\Прога]
"Manual"=dword:00000001

Так запись производится не верно
WriteRegStr HKLM "SOFTWARE\Компания\Прога" "Manual" "dword:00000001"

Такое работает для
[HKEY_LOCAL_MACHINE\SOFTWARE\Компания\Прога]
"Manual"="forum.oszone.net"

p.s на значения ключей не смотрите это просто для примера.

Комсомолец
25-04-2009, 02:36
Impeck,
WriteRegStr HKLM "SOFTWARE\Nullsoft\Winamp" "regname" "Name"
WriteRegStr HKLM "SOFTWARE\Nullsoft\Winamp" "regkey" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

WriteRegDWORD HKCU "Software\Smart Projects\IsoBuster" "SavedGotham" 0x5


это для примера.

Impeck
25-04-2009, 13:16
Код:
WriteRegStr HKLM "SOFTWARE\Nullsoft\Winamp" "regname" "Name"
WriteRegStr HKLM "SOFTWARE\Nullsoft\Winamp" "regkey" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
WriteRegDWORD HKCU "Software\Smart Projects\IsoBuster" "SavedGotham" 0x5
это для примера. »

Т.е в моем случае это должно быть так:
WriteRegDWORD HKLM "SOFTWARE\Компания\Прога" "Manual" 00000001
или так:
WriteRegDWORD HKLM "SOFTWARE\Компания\Прога" "Manual" 1

Комсомолец
25-04-2009, 14:04
Impeck, nullsoft=company. winamp=proga. manual=ключ. значение=как сам задашь. главное чтобы прога его поняла.

hb860
25-04-2009, 17:04
Комсомолец, ты сам то понял что ты ему ответил ?
Impeck, вот так прокатит:
WriteRegDWORD HKLM "SOFTWARE\Компания\Прога" "Manual" 1
Я вообще, когда пишу дворды в реестр, я их перевожу в десятичную систему счисления, и в WriteRegDWORD указываю именно десятичное значение. Ещё ни разу не подвело




© OSzone.net 2001-2012