Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Комсомолец
03-04-2009, 11:15
hb860, может уточнишь что именно? я строк 20 скрипта правил по ее подсказкам-так и не добился ничего((
volk1234, спасибо за оформление темы и ссылки! Прикрепи, пожалуйста, и ISS2NSI (http://prdownloads.sourceforge.net/hmne/iss2nsi10a1.zip?download) в ссылки.
Комсомолец
03-04-2009, 11:35
вложение удалено.
Комсомолец, спасибо! скачал!
Комсомолец, что именно мне уточнить ?
Комсомолец
04-04-2009, 20:10
hb860, как перегнать iss в nsi.
==================
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".
Это из оффициального мануала
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 не помогает((
Комсомолец, прежде всего, так тяжело понять о чём речь...
Вы можете привести конкретный пример, а именно пример скрипта 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"
Мусору в скрипте достаточно. Буду рад помощи...
Комсомолец, удали строку №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) :)
А вот и все в одном посте Комсомолец ! :)
Доброго времени суток.
Подскажите, как прописать ключ в реестр такого вида:
[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
это для примера.
Код:
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=ключ. значение=как сам задашь. главное чтобы прога его поняла.
Комсомолец, ты сам то понял что ты ему ответил ?
Impeck, вот так прокатит:
WriteRegDWORD HKLM "SOFTWARE\Компания\Прога" "Manual" 1
Я вообще, когда пишу дворды в реестр, я их перевожу в десятичную систему счисления, и в WriteRegDWORD указываю именно десятичное значение. Ещё ни разу не подвело
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC