Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Установка тем для Notepad++ с применением(NSIS скрипт+тема-сборка прилагается) (http://forum.oszone.net/showthread.php?t=120962)

hb860 24-10-2008 21:52 932847

Установка тем для Notepad++ с применением(NSIS скрипт+тема-сборка прилагается)
 
Вложений: 1
Приветствую, форумчане.
Всвязи с тем что уже неоднократно слышу просьбы замутить сабж, собственно, мучу:)
Итак, постановка задачи: требуется обеспечить возможность установки темы иконок тулбара Notepad++ с применением после установки, а также обеспечить возможность тихой установки оной.

Сборка c темой Crystal++ приложена к этому сообщению. Ставится: Notepad Toolbar Skin.exe /S

Как сделать самому(на примере темы Crystal++)
1. Создаем d:\npp_toolbar\
2. в d:\npp_toolbar\Icons\ кладем файлы темы(d:\npp_toolbar\Icons\blank.ico,d:\npp_toolbar\Icons\close_disabled.ico,d:\npp_toolbar\Icons\clo se_hover.ico)
3. Кладем toolbarIcons.xml в d:\npp_toolbar\toolbarIcons.xml

Компилим скрипт. Что он делает
1. Копирует в папку c:\Program Files\Notepad++\CrystalToolbar\ иконки, указанные в d:\npp_toolbar\Icons\
2. смотрит наличие doLocalConf.xml, если есть
2.1 Пихает ToolbarIcons.xml в c:\Program Files\Notepad++\ и правит там config.xml для применения темы
2.2 если нет, делает тоже самое в %appdata%\notepad++ для текущего пользователя

Использование с инсталятором.
После тихой установки официального исталера нет файла config.xml. Мой скрипт его не генерит, а только правит. Чтоб он создался, необходимо
Вариант 1. Запустить после установки notepad++, он создат config.xml, потом прибить его taskkill
Вариант 2. Скопировать config.xml в %appdata%\notepad++ или файлы config.xml и doLocalConf.xml в c:\Program Files\Notepad++\
Вариант 3. Перепаковать notepad++ моим скриптом, включив нужные файлы http://forum.oszone.net/thread-101982.html

После этого запускать Notepad Toolbar Skin.exe /S

Скрипт пакует и применяет только одну тему. Если возникнет интерес/необходимость пользователей - фукциональность будет расширена.
Для скрипта нужен плагин http://nsis.sourceforge.net/XML_plug-in
Код скрипта:
Код:

; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Notepad Toolbar Skin"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "XML.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"


!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES

; Language files
!insertmacro MUI_LANGUAGE "Russian"

; MUI end ------
Name "${PRODUCT_NAME}"
OutFile "${PRODUCT_NAME}.exe"
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
ShowInstDetails show
ShowUnInstDetails show
Var e
Function .onInit
        ReadRegStr $INSTDIR HKEY_LOCAL_MACHINE "SOFTWARE\Notepad++" ""
        StrCpy $R0 $INSTDIR
        StrCpy $INSTDIR "$INSTDIR\CrystalToolbar\"
FunctionEnd

Section "MainSection" SEC01
  SetAutoClose false
  SetOutPath "$INSTDIR"
  File /r "d:\npp_toolbar\Icons\*.*"
 
  StrCpy $e "LoadFile:config.xml"
  IfFileExists "$R0\doLocalConf.xml" OneUser MultiUser
  MultiUser:
      SetOutPath "$APPDATA\Notepad++\"
          Goto end
  OneUser:
          SetOutPath "$R0"
          Goto end
  end:         
  File "d:\npp_toolbar\toolbarIcons.xml"
  ${xml::LoadFile} "$OUTDIR\toolbarIcons.xml" $0
  ${xml::GotoPath} "/NotepadPlus/ToolBarIcons/Theme" $0
  ${xml::SetAttribute} "pathPrefix" "$INSTDIR\" $0
  DetailPrint "Theme path:$R9"
  ${xml::SaveFile} "" $0
  ${xml::LoadFile} "$OUTDIR\config.xml" $0
  ${xml::GotoPath} "/NotepadPlus/GUIConfigs/GUIConfig" $0
  ${xml::SetText} "large" $0 
  ${xml::SaveFile} "" $0
  ${xml::Unload}
SectionEnd

P.S. Лично мне чихать какие у этой программы иконки. Для меня это мощный рабочий инструмент


Проверялось: Windows XP sp3 x86. Теоретически работает во всех NT6.x при запуске исталятора с повышенными привелегиями.

Комсомолец 25-10-2008 20:15 933509

Цитата:

Цитата hb860
Лично мне чихать какие у этой программы иконки. Для меня это мощный рабочий инструмент »

согласен. хотя мне только синтаксис интересен.

AVB-- 16-10-2011 16:38 1774561

Вложений: 1
Хочу добавить свой toolbar, собранный из кнопок разных прогрмм

AVB-- 16-10-2011 16:40 1774566

Вложений: 1
не освоился, вот ссылка

http://forum.oszone.net/attachment.p...1&d=1318768749


Время: 12:50.

Время: 12:50.
© OSzone.net 2001-