|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Serg866:
OutFile "PAGE_INSTFILES_TXT_Test.exe" InstallDir "$TEMP" !include MUI2.nsh !insertmacro MUI_PAGE_DIRECTORY !define MUI_PAGE_CUSTOMFUNCTION_SHOW ShowTxt !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" ; рамка вокруг области текста (если надо) !define WS_BORDER 0x00800000 Function ShowTxt ; наш текст StrCpy $R7 "Текст Текст Текст Текст Текст Текст Текст Текст" FindWindow $R0 "#32770" "" $HWNDPARENT ; создаём окно области текста System::Call 'user32::CreateWindowEx(i0,t "EDIT",t "$R7",\ i${DEFAULT_STYLES}|${WS_VSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN}|${ES_AUTOVSCROLL}|${WS_BORDER},\ i5,i100,i445,i60,i$R0,i222,i0,i0) i.R2' ; цвет текста & цвет фона области текста SetCtlColors $R2 `0x0000FF` `0x99FFFF` ; чтобы шрифт был, как и на странице (ессно можно назначить свой) SendMessage $R0 ${WM_GETFONT} 0 0 $R9 SendMessage $R2 ${WM_SETFONT} $R9 0 FunctionEnd Section Sleep 1000 SectionEnd |
|
Последний раз редактировалось MKN, 17-12-2014 в 13:44. Отправлено: 13:33, 17-12-2014 | #1401 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 83
|
Профиль | Отправить PM | Цитировать MKN, благодарю за подробный пример! Всё сработало!
Очень полезная возможность. А можно ли туда ещё небольшую картинку приделать? Что-то вроде баннера. |
Отправлено: 14:42, 17-12-2014 | #1402 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Serg866:
!define HWND_TOP 0 !define SWP_NOSIZE 0x0001 !define SWP_NOMOVE 0x0002 !define IDC_BITMAP 1500 ; например поместим картинку mypict.bmp ( размер выбран 58x80 - для "вписывания" в уже имеющееся на странице, "хозяйство" ) System::Call 'kernel32::GetModuleHandle(i 0) i.R3' System::Call 'user32::CreateWindowEx(i 0, t "STATIC", t "", i ${SS_BITMAP}|${WS_CHILD}|${WS_VISIBLE}, i 220, i 220, i R1, i R2, i $HWNDPARENT, i ${IDC_BITMAP}, i R3, i 0) i.R2' System::Call 'user32::SetWindowPos(i R1, i ${HWND_TOP}, i 0, i 0, i 00, i 0, i ${SWP_NOSIZE}|${SWP_NOMOVE})' System::Call `user32::LoadImage(i 0, t "mypict.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s` Pop $R8 SendMessage $R2 ${STM_SETIMAGE} ${IMAGE_BITMAP} $R8 ; этот код обычно в Function .onGUIEnd ) System::Call 'gdi32:DeleteObject(i $R8)' |
|
Последний раз редактировалось MKN, 17-12-2014 в 18:50. Отправлено: 17:10, 17-12-2014 | #1403 |
Пользователь Сообщения: 83
|
Профиль | Отправить PM | Цитировать MKN, спасибо, выручаешь. И ещё один вопрос по этой теме.
Команда: StrCpy $R7 "Текст Текст Текст Текст Текст Текст Текст Текст" Как в ней делать перенос строки? $\n не срабатывает( +если можно, то подскажи, пожалуйста, как добавить ещё 2 строки с текстом над текстом, который в рамке? То есть нужен ещё просто текст над рамкой. Ну и ещё один момент - текст почему-то редактируемый получается в рамке. Думал это из-за значения EDIT в команде System::Call 'user32::CreateWindowEx(i0,t "EDIT",t "$R7",\ Попробовал STATIC - текст вообще пропал) Короче у меня руки походу растут не откуда надо) |
Последний раз редактировалось Serg866, 17-12-2014 в 21:33. Отправлено: 19:11, 17-12-2014 | #1404 |
Пользователь Сообщения: 83
|
Профиль | Отправить PM | Цитировать Пока сам поковырял и погуглил по теме. Вроде получилось то что задумал.
Могу и код выложить... Но просто он такой ужасный, что при его виде у профи по НСИСУ станет плохо с сердцем. Я даже не знаю как он скомпилировался. И уточню вопрос в тексте. Хочу, чтоб текст можно было скопировать в буфер, но при этом чтоб нельзя его было изменять в области окна. |
Отправлено: 00:42, 18-12-2014 | #1405 |
Пользователь Сообщения: 91
|
Профиль | Отправить PM | Цитировать |
Отправлено: 01:02, 18-12-2014 | #1406 |
Пользователь Сообщения: 83
|
Профиль | Отправить PM | Цитировать Begin2Fly, нее, что-то не срабатывает команда
|
Отправлено: 01:10, 18-12-2014 | #1407 |
Пользователь Сообщения: 91
|
Профиль | Отправить PM | Цитировать Serg866, я добавлял к коду MKN, возможно, вы что-то переделывали.
OutFile "PAGE_INSTFILES_TXT_Test.exe" InstallDir "$TEMP" !include MUI2.nsh !insertmacro MUI_PAGE_DIRECTORY !define MUI_PAGE_CUSTOMFUNCTION_SHOW ShowTxt !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" ; рамка вокруг области текста !define WS_BORDER 0x00800000 Function ShowTxt ; наш текст StrCpy $R9 "Текст Текст Текст Текст $\r$\n$\r$\n Текст Текст Текст Текст" FindWindow $R0 "#32770" "" $HWNDPARENT System::Call 'user32::CreateWindowEx(i0,t "EDIT",t "$R9",\ i${DEFAULT_STYLES}|${WS_VSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN}|${ES_AUTOVSCROLL}|${WS_BORDER},\ i5,i100,i445,i60,i$R0,i222,i0,i0) i.R2' ; цвет текста & цвет фона SetCtlColors $R2 `0x0000FF` `0x99FFFF` SendMessage $R0 ${WM_GETFONT} 0 0 $R9 SendMessage $R2 ${WM_SETFONT} $R9 0 SendMessage $R2 ${EM_SETREADONLY} 1 0 FunctionEnd Section Sleep 1000 SectionEnd |
Отправлено: 01:12, 18-12-2014 | #1408 |
Пользователь Сообщения: 83
|
Профиль | Отправить PM | Цитировать Begin2Fly , да я наворотил что-то там... Отправил Вам в личку код.
Надо его облагородить. |
Отправлено: 01:17, 18-12-2014 | #1409 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Serg866:
Как ты уже правильно хотел сделать, поменяй EDIT на STATIC. И, раз не нужно редактирование, удали не нужные флаги. Т.е. ,будет : System::Call 'USER32::CreateWindowEx(i0,t "STATIC",t "$R7",i ${WS_CHILD}|${WS_VISIBLE},\ i5,i80,i445,i60,i$R0,i222,i0,i0) i.R2' WS_VISIBLE - Создается окно, которое сразу становится видимым. По умолчанию окна создаются невидимыми, и для их отображения требуется вызывать функцию ShowWindow . можно ещё короче : System::Call 'USER32::CreateWindowEx(i0,t "STATIC",t "$R7",i${DEFAULT_STYLES},\ i5,i80,i445,i60,i$R0,i222,i0,i0) i.R2' (Если не хочется видеть полосу прокрутки, а текста много - расширь область окна, смести прогресс бар повыше и сделай уже его полоску. Вариантов много.) ps про всё это уже говорилось в теме |
|
Последний раз редактировалось MKN, 18-12-2014 в 11:51. Отправлено: 11:40, 18-12-2014 | #1410 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|