|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
|
[архив].: NSIS - все вопросы :.
|
|
Ветеран Сообщения: 1216 |
|
|
|
Отправлено: 23:35, 17-06-2006 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets, я хотел бы еще реализовать командные ключb
например при S/port распаковывалась портативная версия S/inst устанавливалась обычная и еще добавить S/inst установку скажем CCEnhancer и это все в тихом режиме что где надо добавить в коде |
|
Последний раз редактировалось diakov, 22-12-2011 в 15:03. Отправлено: 13:40, 22-12-2011 | #2071 |
|
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Уважаемый kotkovets, ощущается нехватка информации по созданию инсталляторов, совместимых с установкой на 64-битные системы. Если аспекты распаковки файлов и регистрации библиотек более менее понятны, то работа со строками реестра представляет сложности. К примеру, написал сегодня скрипт, в котором регистрируются разные dll в зависимости от разрядности системы, скрипт вроде не сложный, а что поправить для совместимости с реестром 64 не совсем ясно. Не помешала бы небольшая инструкция в дополнение к справке на примере простого скрипта.
Например такой скрипт: !define MUI_WELCOMEFINISHPAGE_BITMAP "D:\NSIS\Jame2.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "D:\NSIS\Jame2.bmp"
!define PRODUCT_NAME "TreeSize Professional"
!define PRODUCT_VERSION "5.5.0.776"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define pkgdir "D:\NSIS"
!define FSizeDLL "${pkgdir}\TreeSize\FSizeCol.dll"
!define HelpLink "http://www.jam-software.de/customers/contact.php?language=EN&article_no=101&version_no=5.4.3.702"
!define URLInfoAbout "http://www.jam-software.com"
!define URLUpdateInfo "https://www.jam-software.de/customers/index.php?language=EN"
!define PRODUCT_WEB_SITE "http://www.jam-software.com"
!define Comments "Программа, анализирующая пространство на жестком диске вашего компьютера!"
;
; MUI 1.67 compatible
!include "MUI2.nsh"
!include "Library.nsh"
!include "LogicLib.nsh"
!include "x64.nsh"
;
SetCompressor /SOLID lzma
;
; MUI Settings
;
!define MUI_ABORTWARNING
!define MUI_ICON "D:\NSIS\TreeSize.ico"
!define MUI_UNICON "D:\NSIS\modern-uninstall-blue-full.ico"
!define MUI_COMPONENTSPAGE_SMALLDESC
;
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
;
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;
; Language files
!insertmacro MUI_LANGUAGE "Russian"
;
!define RmEmptyDir "!insertmacro PathIsDirectoryEmpty"
!macro PathIsDirectoryEmpty Dir
Push `${Dir}`
System::Store S
System::Call "Shlwapi::PathIsDirectoryEmpty(tsR1)i.R0"
StrCmp $R0 1 0 +2
RmDir `$R1`
System::Store L
!macroend
;
; MUI end ------
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
UninstallCaption "Удаление ${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\JAM Software\TreeSize Professional"
BrandingText "${BRANDING}"
;
Section "!${PRODUCT_NAME} (Установка программы)" Install
;
SetOutPath "$INSTDIR"
File "${pkgdir}\TreeSize\FSizeCol.dll"
File "${pkgdir}\TreeSize\FSizeCol64.dll"
File "${pkgdir}\TreeSize\license.En.rtf"
File "${pkgdir}\TreeSize\TreeSize.chm"
File "${pkgdir}\TreeSize\TreeSize.exe"
File "${pkgdir}\TreeSize\TreeSize.pdf"
File "${pkgdir}\TreeSize\tsizepro.css"
File "${pkgdir}\TreeSize\tsizepro.xsl"
File "${pkgdir}\TreeSize\tszurl.ico"
;
WriteUninstaller "$INSTDIR\uninst.exe"
;
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME} v${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\TreeSize.exe"
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}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "JAM Software"
;
${If} ${RunningX64}
ExecWait 'regsvr32 /s "$INSTDIR\FSizeCol64.dll"'
${Else}
ExecWait 'regsvr32 /s "$INSTDIR\FSizeCol.dll"'
${EndIf}
;
WriteRegStr HKLM "SOFTWARE\Classes\Folder\shellex\ColumnHandlers\{0BC1E559-9D68-4E99-AFD9-98D27DAB971D}" "" "TreeSize FolderSizeColumn"
;
WriteRegStr HKLM "SOFTWARE\CodeGear" "" ""
WriteRegStr HKLM "SOFTWARE\CodeGear\Locales" "$INSTDIR\TreeSize.exe" "EN"
;
WriteRegStr HKCU "Software\JAM Software\TreeSize Professional" "" ""
WriteRegDWORD HKCU "Software\JAM Software\TreeSize Professional\Shell Column" "Decimals" 0x1
WriteRegDWORD HKCU "Software\JAM Software\TreeSize Professional\Shell Column" "Unit" 0x2
SectionEnd
;
!macro CreateInternetShortcut FILENAME URL ICONFILE ICONINDEX
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "${ICONINDEX}"
!macroend
;
SectionGroup "Создать ярлыки TreeSize Professional" Shortcuts
Section "Создать группу ярлыков в меню Пуск" Startmenu
SetOutPath "$INSTDIR"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\TreeSize.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Поиск файлов.lnk" "$INSTDIR\TreeSize.exe" /SEARCH
;CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Поиск дублирующихся файлов.lnk" "$INSTDIR\TreeSize.exe" /SEARCH ;/TABS 4
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Руководство пользователя.lnk" "$INSTDIR\TreeSize.pdf"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Справка.lnk" "$INSTDIR\TreeSize.chm"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
!insertmacro CreateInternetShortcut \
"$SMPROGRAMS\${PRODUCT_NAME}\Домашняя страница ${PRODUCT_NAME}" \
"${PRODUCT_WEB_SITE}" \
"$INSTDIR\tszurl.ico" "0"
SectionEnd
;
Section "Разместить ярлык на Рабочем столе" Desktop
SetOutPath "$INSTDIR"
CreateShortCut "$Desktop\${PRODUCT_NAME}.lnk" "$INSTDIR\TreeSize.exe"
SectionEnd
;
Section "Добавить ярлык в Панель быстрого запуска" Quicklaunch
SetOutPath "$INSTDIR"
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\TreeSize.exe"
SectionEnd
SectionGroupEnd
;
SectionGroup "Интегрировать в контекстное меню" Context
Section "Интегрировать TreeSize Professional 5" TreeSize
SetOutPath $INSTDIR
WriteRegStr HKCU "Software\Classes\Directory\shell\TreeSize Professional" "" "TreeSize Professional &5"
WriteRegStr HKCU "Software\Classes\Directory\shell\TreeSize Professional\command" "" "$\"$INSTDIR\TreeSize.exe$\" /CONTEXT $\"%1$\""
;
WriteRegStr HKCU "Software\Classes\Drive\shell\TreeSize Professional" "" "TreeSize Professional &5"
WriteRegStr HKCU "Software\Classes\Drive\shell\TreeSize Professional\command" "" "$\"$INSTDIR\TreeSize.exe$\" /CONTEXT $\"%1$\""
SectionEnd
;
Section "Интегрировать File Search" FileSearch
SetOutPath $INSTDIR
WriteRegStr HKCU "Software\Classes\Directory\shell\TreeSize_fs" "" "TreeSize &File Search"
WriteRegStr HKCU "Software\Classes\Directory\shell\TreeSize_fs\command" "" "$\"$INSTDIR\TreeSize.exe$\" /SEARCH /TABS 5 $\"%1$\""
;
WriteRegStr HKCU "Software\Classes\Drive\shell\TreeSize_fs" "" "TreeSize Professional &File Search"
WriteRegStr HKCU "Software\Classes\Drive\shell\TreeSize_fs\command" "" "$\"$INSTDIR\TreeSize.exe$\" /SEARCH /TABS 5 $\"%1$\""
SectionEnd
SectionGroupEnd
;
Function un.onInit
SectionSetText ${Uninstall} "Удалить программу ${PRODUCT_NAME}"
FunctionEnd
Section Uninstall Uninstall
SectionIn 1 RO
KillProcDLL::KillProc "TreeSize.exe"
Sleep 700
;
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$Desktop\${PRODUCT_NAME}.lnk"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"
;
${If} ${RunningX64}
ExecWait 'regsvr32 /s /u "$INSTDIR\FSizeCol64.dll"'
${Else}
ExecWait 'regsvr32 /s /u "$INSTDIR\FSizeCol.dll"'
${EndIf}
;
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKCU "Software\JAM Software\TreeSize Professional" ""
DeleteRegKey /ifempty HKCU "Software\JAM Software"
DeleteRegKey HKLM "SOFTWARE\JAM Software\TreeSize Professional" ""
DeleteRegKey /ifempty HKLM "SOFTWARE\JAM Software"
DeleteRegValue HKLM "SOFTWARE\CodeGear\Locales" "$INSTDIR\TreeSize.exe"
DeleteRegKey /ifempty HKLM "SOFTWARE\CodeGear"
;
DeleteRegKey HKCU "Software\Classes\Directory\shell\TreeSize_fs" ""
DeleteRegKey HKCU "Software\Classes\Drive\shell\TreeSize_fs" ""
DeleteRegKey HKCU "Software\Classes\Directory\shell\TreeSize Professional" ""
DeleteRegKey HKCU "Software\Classes\Drive\shell\TreeSize Professional" ""
DeleteRegKey HKLM "SOFTWARE\Classes\CLSID\{0BC1E559-9D68-4E99-AFD9-98D27DAB971D}" ""
DeleteRegKey HKLM "SOFTWARE\Classes\FSizeCol.JamFolderSizeColumn" ""
DeleteRegKey HKLM "SOFTWARE\Classes\Folder\shellex\ColumnHandlers\{0BC1E559-9D68-4E99-AFD9-98D27DAB971D}" ""
RMDir /r /REBOOTOK "$INSTDIR"
${RmEmptyDir} "$PROGRAMFILES\JAM Software"
SetAutoClose true
SectionEnd
|
|
------- Последний раз редактировалось wolkow70, 22-12-2011 в 14:32. Отправлено: 14:23, 22-12-2011 | #2072 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
устанавливать значение $Radio = 1, то условие распаковки будет выполнено.. и заодно парсить командную строку инсталлятора Читайте в оригинальной справке - поиск по индексу GetOptions Цитата wolkow70:
Если программа 64-битная, то следовательно ей нужен доступ к 64-разрядному виду реестра, что достигается командой SetRegView 64 - смотрите справки, а также редирект на папки 64-битных программ - смотрите хедер х64.nsh |
||
|
------- Последний раз редактировалось kotkovets, 22-12-2011 в 15:35. Причина: очепятки мелкие Отправлено: 15:19, 22-12-2011 | #2073 |
|
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
Какой нибудь скрипт нужен для примера. По скриптам легче изучать, чем по справке на инглише. А в хедере я все равно не пойму многого. |
|
|
------- Отправлено: 15:49, 22-12-2011 | #2074 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets, при постановке в скрипт кода выдаёт такую ошибку
Function: ".OnInit" Error: Function named ".OnInit" already exists. Error in script "C:\Users\Diakov\Desktop\Ccleaner.nsi" on line 261 -- aborting creation process Я так понимаю это потому что уже есть функция Function .onInit InitPluginsDir ;иницилизируем рабочую папку, куда будут распакованы картинки File "/oname=$PLUGINSDIR\nsis-r.bmp" "${NSISDIR}\Contrib\Graphics\Header\nsis-r.bmp" File "/oname=$PLUGINSDIR\orange-r.bmp" "${NSISDIR}\Contrib\Graphics\Header\orange-r.bmp" FunctionEnd Как быть? |
|
Отправлено: 16:30, 22-12-2011 | #2075 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
требуют редиректа к некоторым ключам в реестра. Например кусочек скрипта Nero 11, здесь на один ключ в реестре включаем перенаправление к 64-разрядному виду реестра, а затем возвращаемся к 32-разрядному виду реестра ${If} ${RunningX64}
SetRegView 64
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\6FA8588DEBF295543BD8D53E676560BE" "A4EAA01E8B89A024DB390E25C0326D42" "$INSTDIR\Nero Burning ROM\NeroExpress.exe"
SetRegView 32
${Else}
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\6FA8588DEBF295543BD8D53E676560BE" "A4EAA01E8B89A024DB390E25C0326D42" "$INSTDIR\Nero Burning ROM\NeroExpress.exe"
${EndIf}
Цитата diakov:
|
||
|
------- Отправлено: 16:32, 22-12-2011 | #2076 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать сча попробуем)
|
|
Отправлено: 16:36, 22-12-2011 | #2077 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets, все заработало но ставиться в тихом только клинер без ярлыков и надстройки...
Просто прописать дополнительно команды? |
|
Отправлено: 16:59, 22-12-2011 | #2078 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
|
|
|
------- Отправлено: 17:17, 22-12-2011 | #2079 |
|
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
К примеру: 1. Ключ деинсталлятора? 2. CLSID-ы? 3. Ключи интеграции в оболочку Explorer? 4. Ключи настроек программы в HKLM SOFTWARE и HKCU Software? 5. Файловые ассоциации? |
|
|
------- Последний раз редактировалось wolkow70, 22-12-2011 в 17:31. Отправлено: 17:26, 22-12-2011 | #2080 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. | ssaram | Программное обеспечение Windows | 406 | 12-02-2022 19:45 | |
| WinstyleMonitor .:[все вопросы]:. | Mr dUSHA | Проект WinStyle | 331 | 12-02-2014 13:15 | |
| Delphi - Delphi .: [все вопросы] :. | Serega | Программирование и базы данных | 94 | 04-05-2013 18:45 | |
| Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
| Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 | |
|