Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2.

Ответить
Настройки темы
.: NSIS - все вопросы :. часть 2.

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: kotkovets
Дата: 07-06-2020
Описание: NSIS 3.05


Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения.


Описание:
читать дальше »
NSIS (Nullsoft Scriptable Install System) - профессиональная система для создания инсталляторов в среде Windows с октрытым исходным кодом. При своем малом размере система очень гибкая, и при с широкими возможностями. Генерируемый ею инсталлятор также имеет очень маленький размер и идеально подходит для распространения продукта через Интернет.


Текущая версия: NSIS 3.05 от 15 декабря 2019 года
Скачать | Архив сборок версии

Первая часть этой темы
Скачать первую часть этой темы одним архивом

ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов:
Справочник по NSIS - создан силами нашего сообщества.
Руководство пользователя. Перевод – Поляков А.В, зеркало

Документация

Утилиты разработчика
Расширение функциональности

Примеры скриптов на нашем форуме
Скрипт NSIS для перепаковки AIMP2+Сборки
Тема для Notepad++(пример парсинга XML)

Достоинства
читать дальше »


◦ Очень маленький размер установочного блока (около 34 Кбайт)
◦ zlib, bzip2 и LZMA-сжатие
◦ Гибкая система скриптов (спецально разработанная для инсталляторов)
◦ Поддержка многоязычности, точнее 53 языка, есть возможность ввода нового языка
◦ Поддержка плагинов
◦ Скрипт Препроцессор
◦ Создание Web-инсталляторов


Ещё немного полезной информации:
читать дальше »

▫ История создания установщика

NSIS создан как альтернатива InstallShield, предназначенного для коммерческих продуктов.

NSIS был создан для распространения Winamp. Он базируется на предыдущем продукте Nullsoft — PiMP (plugin Mini Packager), иначе известным как SuperPiMP. После версии 2.0a0, проект был перемещён на SourceForge.net, где к работе над ним присоединились и сторонние разработчики. NSIS 2.0 был выпущен в свет 2 года спустя.

NSIS версии 1 был очень похож на классический Windows Installer, но он был более управлемым с помощью скриптов и поддерживал другие форматы сжатия. NSIS версии 2 поддерживает новый графический интерфейс пользователя, LZMA-сжатие, многоязычность и имеет хорошую систему плагинов.

Версия 2.01 была первой версией, поддерживающей компиляцию на любой из POSIX-платформ. Это позволило создавать Windows-инсталляторы на GNU/Linux и FreeBSD без использования эмулятора Wine. На данный момент поддерживается компиляция только для Windows.

▫ Описание

Компилятор NSIS — программа makensis — компилирует скрипты в исполняемый код. Каждая строчка скрипта содержит одну команду. Пример:
Код: Выделить весь код
 # Пример скрипта
 Name "Example1"
 OutFile "example1.exe"
 InstallDir "$PROGRAMFILES\Example1"
 Page Directory
 Page InstFiles
 Section
   SetOutPath $INSTDIR
   File ..\makensis.exe
 SectionEnd

Modern User Interface

В версии 2.0 был введён новый графический интерфейс пользователя, названный Modern UI (MUI). MUI очень похож на интерфейс мастеров, он поддерживает splash screen, выбора языка, выбор компонентов для установки и более широкие возможности настройки по сравнению со своим предшественником. Пример:
Код: Выделить весь код
 # Пример скрипта с Modern UI
 !include MUI.nsh
 Name "Example 2"
 OutFile Example2.exe
 !insertmacro MUI_PAGE_WELCOME
 !insertmacro MUI_PAGE_LICENSE "license.rtf"
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_COMPONENTS
 !insertmacro MUI_PAGE_INSTFILES
 !insertmacro MUI_PAGE_FINISH
 !insertmacro MUI_LANGUAGE "English"
 !insertmacro MUI_LANGUAGE "German"
 !insertmacro MUI_LANGUAGE "French"
 Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
 SectionEnd
NSIS может быть расширен при помощи плагинов, которые могут быть написаны на C++, Си, и Delphi. Плагины могут быть использованы для улучшения функциональности и интерфейса инсталлятора. Плагины могут быть вызваны в любой части кода NSIS скрипта.

С пакетом NSIS поставляются несколько плагинов, позволяющих добавлять новые страницы, заменять фоновые изображения, скачивать файлы из Интернета, выполнять математические вычисления, обновлять файлы и многое другое.

▫ Программы, использующие NSIS


◦ Антивирус Касперского
◦ Qip
◦ 3DNA Desktop
◦ 7-Zip
◦ ATI Display Driver
◦ CDex
◦ Dev-C++
◦ DivX
◦ eMule FileZilla
◦ Google Picasa
◦ Google Talk
◦ Intel C (компилятор)
◦ IrfanView
◦ LightAllow
◦ LyX
◦ Miranda IM Mozilla Firefox 2.0
◦ NASA World Wind
◦ Notepad++
◦ OpenOffice.org для Windows
◦ Pidgin
◦ VLC Player
◦ Winamp

▫ Чем я могу распаковать инсталлятор, созданный в NSIS?

В настоящее время инсталляторы NSIS не могут быть полностью декомпилированы. Сам инсталлятор не содержит в себе никаких функций для того, чтобы извлечь сценарий и/или файлы без инсталляции. Это - выбор разработчика, доступны ли исходный текст и/или файлы для инсталлятора для публики или нет. Есть, однако, внешние инструментальные средства, которые позволяют это сделать. 7-zip поддерживает частичную распаковку NSIS инсталляторов с алгоритмом сжатия lzma или bzip. Так же существует мульти-архивный плагин для TotalCommander.
Небольшая заметка для разработчиков: используйте DCryptDll, если хотите скрыть некоторые файлы в вашей инсталляции.


-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:02, 09-12-2012

 

Пользователь


Сообщения: 96
Благодарности: 1

Профиль | Отправить PM | Цитировать


K.A.V., в моем случае не помогает код который дал kotkovets, ни те что в представленой им ссылке. Все дело в плагине nsisunrar2, при его использовании он создает ' свою' кнопку отмены, при нажатии которой прерывается только секция в которой используется этот плагин. А затем уже кнопка отмена возвращается в свое обычное состояние, и нужно нажимать ее еще раз. Как быть?

Отправлено: 19:43, 23-02-2014 | #1041



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Vincent7:
Все дело в плагине nsisunrar2, при его использовании он создает ' свою' кнопку отмены »
все правильно, разработчик сделал отмену своих действий (плагина),
просите автора ещё и сделать глобальное прерывание , так сказать на выбор..

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Отправлено: 23:46, 23-02-2014 | #1042


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата Vincent7:
Как быть? »
Как? Ну, как, я же вам сказал: если вы пользуетесь неизвестным плагином - вам вряд-ли кто-то по нему что-то скажет, а если бы вы посидели и ещё "потыкали", чего вы не делали, я уверен (опять же из-за вашей лени, которая мне уже известна), то могли бы добиться возвращения от плагина числового значения об исходе распаковке архива

Код: Выделить весь код
nsisUnRar2::Extract "$DESKTOP\plugins.rar" "$DESKTOP\TEST"
pop $0
pop $1 ; 0 - архив не распакован, 1 - архив распакован
  MessageBox MB_OK|MB_ICONINFORMATION "$1"
мне кажется, плагин возвращает то, что вам нужно

Если к примеру, указанного архива не существует, то в переменных будут следующие данные (опять же смотря на переменную $1 - что там возвращается я не в курсе, видимо коды возврата именно плагина, о которых знает только разраб)
Код: Выделить весь код
nsisUnRar2::Extract "$DESKTOP\plugins.rar" "$DESKTOP\TEST"
pop $0
pop $1
pop $2

; $0 - error
; $1 - 15
; $2 - RAR open failed: File open error.
за вас снова всю работу сделали, не проще было бы вам добавить UnRAR.exe в дистрибутив?

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 01:36, 24-02-2014 | #1043


Аватара для Flix

Пользователь


Сообщения: 94
Благодарности: 54

Профиль | Отправить PM | Цитировать


Цитата Kopejkin:
Но так и не избавился от серого фона окна. Может кто подскажет, где и что отвечает за цвет фона окна? »
Видать ты не все перекрасил на рисунке. Смотри:


А вот перекрасили:


И теперь цвет фона окна будет - черным.

Цитата Kopejkin:
"Подсунуть" редактору измененное изображение скина можно, но тогда он теряет значение всех координат. Т.е. возвращаемся к тому, с чего начинали. Нет ли способа попроще? »
Да, так и есть. Я сам пробовал и так, и сяк, но все равно нужно все координаты и позиции проставлять с нуля.

Цитата Kopejkin:
А вот как узнать, хотя бы в том же hex-редакторе, в каком формате изображение было в коде и где этот кусок кода находится? »
Изображение в файле проекта SHeditor хранится в формате BMP, но в нем нет заголовка. Где именно, узнать очень просто. Сохрани изображение из проекта в отдельный файл. Затем открой его и сам файл проекта в НЕХ-редакторе. Выдели и скопируй в буфер пару десятков байт из массива с рисунком, но только не с самого начала файла, а отступи байт 50. Перейди на вкладку с массивом проекта и задай поиск байт, находящихся в буфере. Так ты сможешь найти рисунок. Можешь попробовать его подменить, но размер нового рисунка (без заголовка) не должен отличаться от исходного ни на байт, мне например этого не удалось добиться (правда я преследовал немного другую цель). Но может у тебя все получится.

Отправлено: 14:21, 24-02-2014 | #1044


Аватара для Flix

Пользователь


Сообщения: 94
Благодарности: 54

Профиль | Отправить PM | Цитировать


Возвращаясь к "шкурному" вопросу при помощи SkinSharp, то вот перечень всех функций, которые поддерживает библиотека SkinH.dll (описание API в исходном коде библиотеки - перевод с китайского):

Код: Выделить весь код
/*************************************************************/
/*	Описание SkinSharp API									 */
/*************************************************************/

#ifndef SKIN_H
#define SKIN_H

/********************** Коды ошибок **************************/
#define		SRET_OK				0	// Операция выполнена успешно
#define		SRET_ERROR			1	// Операция не удалась
#define		SRET_ERROR_READ			2	// Ошибка файловых операций	
#define		SRET_ERROR_PARAM		3	// Неверный параметр
#define		SRET_ERROR_CREATE		4	// Ошибка создания стиля
#define		SRET_ERROR_FORMAT		5	// Неверный формат стиля
#define		SRET_ERROR_VERSION		6	// Неверная версия стиля
#define		SRET_ERROR_PASSWORD		7	// Неверный пароль доступа к стилю
#define		SRET_ERROR_INVALID		8	// Ошибка авторизации
/*************************************************************/


#define DECLSKINHAPI __declspec(dllimport) int  __stdcall

extern "C"
{
/****************** Функция SkinH_Attach *********************/
// Загрузка файла стиля skinh.she. Для успешной загрузки стиля,
// файл стиля *.she должен быть в одном каталоге с файлом SkinH.dll.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_Attach();
/*************************************************************/

/****************** Функция SkinH_AttachEx *******************/
// Загрузка файла стиля по указанному пути.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachEx(
				LPCTSTR strSkinFile,	// Путь к файлу стиля.
				LPCTSTR strPassword	// Пароль к файлу стиля.
				);
/*************************************************************/

/****************** Функция SkinH_AttachExt ******************/
// Загрузка указанного файла стиля с заданными параметрами насыщенности, оттенка и яркости.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachExt(
				LPCTSTR strSkinFile,	// Путь к файлу стиля.
				LPCTSTR strPassword,	// Пароль к файлу стиля.
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_AttachRes ******************/
// Загрузка указанного ресурса стиля с заданными параметрами насыщенности, оттенка и яркости.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachRes(
				LPBYTE	pShe,		// Указатель на ресурсы стиля.
				DWORD	dwSize,		// Размер ресурсов.
				LPCTSTR strPassword,	// Пароль к файлу стиля.
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_AttachResEx ****************/
// Загрузка указанного имени ресурса стиля с заданными параметрами насыщенности, оттенка и яркости.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachResEx(
				LPCTSTR lpName,		// Имя ресурса.
				LPCTSTR lpType,		// Тип ресурса.
				LPCTSTR strPassword,	// Пароль к файлу стиля.
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_Detach *********************/
// Выгрузка стиля.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_Detach();
/*************************************************************/

/****************** Функция SkinH_DetachEx *******************/
// Выгрузка стиля для указанного дескриптора окна.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_DetachEx(
				HWND hWnd		// Дескриптор (handle) окна.
				);
/*************************************************************/

/****************** Функция SkinH_SetWindowAlpha *************/
// Установка уровня прозрачности для указанного дескриптора окна.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetWindowAlpha(
				HWND hWnd,		// Дескриптор (handle) окна.
				int nAlpha		// Прозрачность. Диапазон значений от 0 до 255.
				);
/*************************************************************/

/****************** Функция SkinH_AdjustHSV ******************/
// Настройка оттенка, насыщенности и яркости стиля.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AdjustHSV(
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_GetColor *******************/
// Получение значения цвета в точке с координатами nX, nY.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_GetColor(
				HWND hWnd,		// Дескриптор (handle) окна или элемента управления.
				int nX,			// Значение координаты Х.
				int nY			// Значение координаты Y.
				);
/*************************************************************/

/****************** Функция SkinH_Map ************************/
// Установка стиля для определенного типа элемента управления.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_Map(
				HWND hWnd,		// Дескриптор (handle) окна или элемента управления.
				int nType		// Тип элемента управления.
				);
	// Идентификаторы элементов управления
	#define TYPE_UNKNOWN				0
	#define TYPE_ANIMATE				1001
	#define TYPE_CHECKBOX				1002
	#define TYPE_COMBOBOX				1003
	#define TYPE_COMBOLBOX				1004
	#define TYPE_CONTROLBAR				1005
	#define TYPE_DATETIME				1006
	#define TYPE_EDITBOX				1007
	#define TYPE_GROUPBOX				1008
	#define TYPE_HEADERCTRL				1009
	#define TYPE_HOTKEY				1010
	#define TYPE_IPADDRESS				1011
	#define TYPE_LABEL				1012
	#define TYPE_LISTBOX				1013
	#define TYPE_LISTVIEW				1014
	#define TYPE_MDICLIENT				1015
	#define TYPE_MENU				1016
	#define TYPE_MONTHCAL				1017
	#define TYPE_PICTURE				1018
	#define TYPE_PROGRESS				1019
	#define TYPE_PUSHBUTTON				1020
	#define TYPE_RADIOBUTTON			1021
	#define TYPE_REBAR				1022
	#define TYPE_RICHEDIT				1023
	#define TYPE_SCROLLBAR				1024
	#define TYPE_SCROLLCTRL				1025
	#define TYPE_SPINCTRL				1026
	#define TYPE_STATUSBAR				1027
	#define TYPE_TABCTRL				1028
	#define TYPE_TOOLBAR				1029
	#define TYPE_TOOLBARWND				1030
	#define TYPE_TRACKBAR				1031
	#define TYPE_TREEVIEW				1032
	#define TYPE_WINDOW				1034
	#define TYPE_COMCTRL				1036
	#define TYPE_PAINTCTRL				1037
/*************************************************************/

/****************** Функция SkinH_SetAero ********************/
// Включение/Отключение эффекта Aero.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetAero(
				int bAero		// Включить Aero - 1. Отключить Aero - 0.
				);
/*************************************************************/

/****************** Функция SkinH_AdjustAero *****************/
// Установка параметров Aero.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AdjustAero(
				int nAlpha,		// Прозрачность. Диапазон значений от 0 до 255 (по умолчанию 0).
				int nShwDark,		// Яркость тени. Диапазон значений от 0 до 255 (по умолчанию 0).
				int nShwSharp,		// Четкость тени. Диапазон значений от 0 до 255 (по умолчанию 0).
				int nShwSize,		// Размер тени. Диапазон значений от 2 до 19 (по умолчанию 2).
				int nX,			// Смещение по горизонтали (X), 0-25 (по умолчанию 0).
				int nY,			// Смещение по вертикали (Y), 0-25 (по умолчанию 0).
				int nRed,		// Красный компонент цвета. Диапазон значений от 0 до 255 (по умолчанию -1).
				int nGreen,		// Зеленый компонент цвета. Диапазон значений от 0 до 255 (по умолчанию -1).
				int nBlue		// Синий компонент цвета. Диапазон значений от 0 до 255 (по умолчанию -1).
				);
/*************************************************************/

/****************** Функция SkinH_SetWindowMovable ***********/
// Установка для формы свойства Moveable.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetWindowMovable(
				HWND hWnd,		// Дескриптор (handle) окна.
				BOOL bMovable		// 0 - неперемещаемая, 1 - перемещаемая.
				);
/*************************************************************/

/****************** Функция SkinH_SetBackColor ***************/
// Установка фонового цвета для заданного элемента управления
// (только для элементов управления CheckBox, Edit, GroupBox).
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetBackColor(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				int nRed,		// Значение красного компонента цвета.
				int nGreen,		// Значение зеленого компонента цвета.
				int nBlue		// Значение синего компонента цвета.
				);
/*************************************************************/

/****************** Функция SkinH_SetForeColor ***************/
// Установка переднего цвета для заданного элемента управления
// (только для элементов управления CheckBox, Edit, GroupBox).
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetForeColor(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				int nRed,		// Значение красного компонента цвета.
				int nGreen,		// Значение зеленого компонента цвета.
				int nBlue		// Значение синего компонента цвета.
				);
/*************************************************************/

/****************** Функция SkinH_LockUpdate *****************/
// Обновление или блокировка эффекта стиля для указанного дескриптора
// окна или элемента управления, в случае многократной смены стиля.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_LockUpdate(
				HWND hWnd,		// Дескриптор (handle) окна или элемента управления.
				int bUpdate		// Блокировать эффект - 1, обновить эффект - 0.
				);
/*************************************************************/

/****************** Функция SkinH_SetMenuAlpha ***************/
// Установка прозрачности меню.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetMenuAlpha(
				int nAlpha		// Прозрачность. Диапазон значений от 0 до 255.
				);
/*************************************************************/

/****************** Функция SkinH_NineBlt ********************/
// Отрисовка контекста элемента.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_NineBlt(
				HDC hDtDC,		// Контекст элемента.
				int left,		// Координата X левого верхнего угла элемента.
				int top,		// Координата Y левого верхнего угла элемента.
				int right,		// Координата X правого нижнего угла элемента.
				int bottom,		// Координата Y правого нижнего угла элемента.
				int nMRect		// Идентификатор (ID) элемента.
				);
/*************************************************************/

/****************** Функция SkinH_SetTitleMenuBar ************/
// Установка заголовка меню.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetTitleMenuBar(
				HWND hWnd,	 	// Дескриптор (handle) окна.
				BOOL bEnable,		// 1 - установить параметры меню. 0 - отменить установку. 
				int nTMenuY, 		// Высота панели меню.
				int nTopOffs, 		// Смещение сверху.
				int nRightOffs 		// Смещение вправо.
				);
/*************************************************************/
	
/****************** Функция SkinH_SetFont ********************/
// Установка шрифта для заданного элемента управления.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetFont(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				HFONT hFont		// Дескриптор шрифта.
				);
/*************************************************************/
		
/****************** Функция SkinH_SetFontEx ******************/
// Установка свойств шрифта для заданного элемента управления.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetFontEx(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				LPCTSTR szFace,		// Имя шрифта.
				int nHeight,		// Высота шрифта.
				int nWidth,		// Ширина шрифта.
				int nWeight,		// Плотность шрифта.
				int nItalic,		// Стиль курсив.
				int nUnderline,		// Стиль подчеркнутый.
				int nStrikeOut		// Стиль зачеркнутый.
				);
/*************************************************************/

/****************** Функция SkinH_VerifySign *****************/
// Проверка цифровой подписи.
// Подпись есть и она действительна - возвращает код 1.
// Подписи нет или она недействительна - возвращает код 0.

	DECLSKINHAPI SkinH_VerifySign();
/*************************************************************/

}
#endif
Например, чтобы изменить цветовую гамму загруженного стиля, нужно в сценарии указать следующую команду:

Код: Выделить весь код
  # Настройка оттенка, насыщенности и яркости стиля.
    ; 80 - значение оттенка
    ; 75 - значение насыщенности 
    ;  0 - значение яркости  
  System::Call SkinH::SkinH_AdjustHSV(i80,i75,i0)
Необходимые параметры можно подобрать при помощи обозревателя стилей SkinViewer:



Таким образом не обязательно создавать новый стиль, можно просто подобрать желаемые параметры цвета для одного из готовых стилей и указать их в сценарии.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:30, 24-02-2014 | #1045


Пользователь


Сообщения: 110
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


По-моему, чернее не бывает...
Красил в первую очередь, т.к. "явно" указывало - Client.



P.S. А этот просмотрщик скинов как отдельное приложение доступен? С наскоку не нашел. Пусть было бы в хозяйстве.

Код: Выделить весь код
/**********Функция SkinH_Attach *********************/
// Загрузка файла стиля skinh.she. Для успешной загрузки стиля,
// файл стиля *.she должен быть в одном каталоге с файлом SkinH.dll.
// В случае успешного выполнения операции возвращает код 0.
Мне не удавалось создать нормальный инсталлятор с файлом скина, который бы назывался иначе, чем skinh.she. Приходилось каждый из предлагаемых скинов переименовывать в skinh.she и тогда все отображалось, как нужно. Об этом уже кто-то упоминал здесь.

Последний раз редактировалось Kopejkin, 25-02-2014 в 15:51.


Отправлено: 03:45, 25-02-2014 | #1046


Аватара для Flix

Пользователь


Сообщения: 94
Благодарности: 54

Профиль | Отправить PM | Цитировать


При использовании функции SkinH_Attach имя файла стиля должно быть skinh.she и никакое другое. Поэтому, чтобы прицепить другой стиль, файл выбранного стиля нужно переименовать в skinh.she. Чтобы не переименовывать файл стиля, нужно использовать функцию SkinH_AttachEx (данное утверждение нуждается в проверке).

Вот все в куче: СКАЧАТЬ

В архиве:
- SHEditor - редактор стилей (русская версия от Leserg);
- SkinViewer - обозреватель стилей (при запуске обращается к папке Skins, если у вас появится новый стиль, просто положите его в эту папку и перезапустите программу - стиль появится в списке);
- Папка Skins - 116 стилей (внимание, многие стили необходимо исправлять (корректировать координаты позиции и прочее), т.к. большинство из них были сделаны в старой версии редактора);
- Папка DLL - библиотека SkinH.dll, соответственно ANSI и Unicode версии. Её можно применять в инсталляторах NSIS/Inno Setup (ANSI/Unicode).

При всем множестве возможных вариантов реализации скинизации инсталляторов NSIS/Inno Setup, я остановился именно на SkinSharp. Маленькая, да удаленькая.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:49, 25-02-2014 | #1047


Пользователь


Сообщения: 110
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Спасибо, сейчас и проверю.

Отправлено: 02:34, 26-02-2014 | #1048


Пользователь


Сообщения: 110
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Цитата Flix:
...нужно использовать функцию SkinH_AttachEx
»
У себя никакой разницы не заметил. Все равно, для нормальной работы требуется skinh.she.

Цитата Flix:
...библиотека SkinH.dll [post=2315612]»[/pos]
Страниц 50 назад MKN уже давал архив с этим "гардеробом".

SkinH.dll у MKN
версия: 1.0.6.6.
дата изменения: 15/08/2010
размер: 89,5 кб

SkinH.dl у Flix
версия: 1.0.6.6.
дата изменения: 11/09/2013
размер: 84,5 Кб

Разницы в работе не заметил.

Во всем этом "мёде" есть ложечка дегтя - на всех "темных" темах некрасиво отображается шрифт с "тенью" или "выдавленный" (бренд, описание компонентов).
Это касается не только шкурок SkinSharp. Такой же эффект был и со шкурками ISSkin.







Можно ли отключить для этих элементов шрифтовые эффекты-дефекты?

Со скинами VCL Style такой дефект присутствует в поле описания компонентов и то только при первом наведении мыши на эту область. Если щелкнуть по компоненту и снова навести указатель в поле описания, "эффект" уже не проявляется.
На бренде его и не было.


Последний раз редактировалось Kopejkin, 26-02-2014 в 13:58.


Отправлено: 11:41, 26-02-2014 | #1049


Пользователь


Сообщения: 96
Благодарности: 1

Профиль | Отправить PM | Цитировать


K.A.V., спасибо, но я сделал по другому, в скрытой секции добавил код подсчета распакованных файлов, если их меньше чем должно быть-аборт

Отправлено: 15:33, 26-02-2014 | #1050



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 dimadr Наборы обновлений для Windows XP/2003/Windows 7 267 14-02-2020 08:25
[архив].: NSIS - все вопросы :. kotkovets Автоматическая установка приложений 3387 09-12-2012 11:56
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 jameszero Наборы обновлений для Windows XP/2003/Windows 7 1491 22-07-2011 22:42
Выбор|модернизация процессора .:[все вопросы]:. Часть I Myxa Выбор отдельных компонентов компьютера и конфигурации в целом 1845 01-01-2011 19:18
Вопросы по создателю инсталляций NSIS MaxDELETE Программное обеспечение Windows 14 04-07-2007 10:01




 
Переход