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

Показать сообщение отдельно

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

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


Contributor


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

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


Цитата NoName01.cpp:
Люди, а можно на nsis написать обработчик нажатий клавиш? »

NSIS пора наверно С/С++ вытеснять?
Не пробовал, но в самом NSIS вы такого не напишите, можно написать библиотеку на С/С++ и вызывать её, но мне кажется маловероятным использование данной библиотеки, например, на странице выбора компонентов....


Показываем картинки на странице выбора компонентов при наведении курсора мыши на компоненты

Необходимо внести изменения в файл интерфейса (\Program Files\NSIS\Contrib\UIs\modern.exe)
Открываем данный файл с помощью ResHacker, переходим в диалог 105
Создаём элемент "BITMAP", устанавливаем ему идентификатор (поле ID), например 9999

*Вот только в этом неудобство, приходится подгонять, если добавлять элемент в диалог 104 (где и есть выбор компонентов), то при компиляции вы получите сообщение об ошибке

На этом редактирование файла интерфейса закончено (ну только вам нужно правильно подогнать расположение элемента), сохраняем изменения и закрываем ResHacker

Открываем файл \Program Files\NSIS\Contrib\Modern UI\System.nsh (можно скопировать данный файл в каталог с вашим скриптом и редактировать его, чтобы не распростарнять изменения на ваши последующие скрипты, НО при этом, необходимо заменить строку !include "MUI.nsh" в вашем скрипте на !include "System.nsh"), ищем в данном файле строку
Код: Выделить весь код
!insertmacro MUI_DESCRIPTION_BEGIN
После неё, вставляем код

Код: Выделить весь код
StrCmp $0 ${section1} 0 +2
SetBrandingImage /IMGID=9999 "$exedir\MODERNUI\Addons\Images\SEC57.bmp"
StrCmp $0 ${section2} 0 +2
SetBrandingImage /IMGID=9999 "$exedir\MODERNUI\Addons\Images\SEC66.bmp"
StrCmp $0 ${section3} 0 +2
SetBrandingImage /IMGID=9999 "$exedir\MODERNUI\Addons\Images\SEC69.bmp"
StrCmp $0 ${section4} 0 +2
SetBrandingImage /IMGID=9999 "$exedir\MODERNUI\Addons\Images\SEC75.bmp"
Думаю здесь всё понятно?
9999 - идентификатор добавленного нами элемента
sectionX - идентификаторы секций
Ну а пути к файлам прописываем полные...
Да кстати, только BMP файлы, и как я писал раньше, все изображения должны быть одного разрешения, иначе получите глюки

Ещё не устали? Это ещё не всё!
Находим строчки, где прописаны какие странички инсталлера показывать (в вашем скрипте)

Код: Выделить весь код
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_COMPONENTS
page custom MyCustom
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
Строчка, выделенная красным цветом обязательна! Если вы её не добавите, то ваши же изображения потом отобразятся на следующих страничках Короче говоря избавляемся от глюков
Ну и последнее, добавляем функцию, которая и скрывает этот элемент (в вашем скрипте)
Код: Выделить весь код
Function MyCustom
!include WinMessages.nsh
GetDlgItem $0 $HWNDPARENT 9999
ShowWindow $0 ${SW_HIDE}
FunctionEnd
Ну вообщем тестируйте сами, всю инфу которая нужна была - я выложил
И не смейте потом где-нибудь писать, что вы сами реализовали данную возможность!

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

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

Отправлено: 16:23, 09-02-2010 | #395