|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
![]() Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Alex S,
На винампе подсказали : OutFile Test.exe !include LogicLib.nsh !define /IfNDef CC_ANYCOLOR 0x00000100 !define /IfNDef CC_FULLOPEN 0x00000002 Section System::Call '*(&l4, p $hWndParent, p0, i0, @r0, i ${CC_ANYCOLOR}|${CC_FULLOPEN}, p, p0, p0)p.r1' System::Call 'COMDLG32::ChooseColorA(pr1)i.r0' ${If} $0 <> 0 System::Call '*$1(i,p,p,i.r0)' IntFmt $0 "%.6X" $0 MessageBox MB_OK $0 ${EndIf} System::Free $1 SectionEnd |
Последний раз редактировалось MKN, 10-02-2025 в 20:00. Отправлено: 18:12, 09-02-2025 | #2881 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать MKN, большое спасибо за помощь...
Выходной формат цвета здесь "Hex". Сейчас кинулся, а моя программа его не воспринимает никак. Для нее цвета должны записываться в кодировке "decimal". Вот такая вот фигня. Теперь буду искать способ получения результата в нужной кодировке. Если сам не разберусь, загляну на винамп, попрошу автора кода, может он поможет... Еще раз спасибо... |
Отправлено: 01:43, 11-02-2025 | #2882 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Alex S,
Используй результат до конвертирования System::Call '*$1(i,p,p,i.r0)' MessageBox MB_OK $0 и примени к нему соотв. математику... |
Последний раз редактировалось MKN, 11-02-2025 в 13:06. Отправлено: 09:39, 11-02-2025 | #2883 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Alex S,
Или можно из HEX получить RGB с помощью, например, известного Colors.nsh. Но это как то не очень красиво... ![]() (можно и без хидера (.nsh) - просто поместить нужные макросы и назначения-определения (!define) в основной код скрипта. ) !include Colors.nsh !include LogicLib.nsh !define /IfNDef CC_ANYCOLOR 0x00000100 !define /IfNDef CC_FULLOPEN 0x00000002 OutFile "colors.exe" ShowInstDetails show Section System::Call '*(&l4, p $hWndParent, p0, i0, @r0, i ${CC_ANYCOLOR}|${CC_FULLOPEN}, p, p0, p0)p.r1' System::Call 'COMDLG32::ChooseColorA(pr1)i.r0' ${If} $0 <> 0 System::Call '*$1(i,p,p,i.r0)' IntFmt $0 "%.6X" $0 MessageBox MB_OK $0 StrCpy $9 $0 ${EndIf} System::Free $1 ${GetRvalueX} $0 "$9" ${GetGvalueX} $1 "$9" ${GetBvalueX} $2 "$9" DetailPrint "Hex: $9 -> Red=$0; Green=$1; Blue=$2" SectionEnd |
Последний раз редактировалось MKN, 11-02-2025 в 16:51. Отправлено: 13:03, 11-02-2025 | #2884 |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Честно говоря я мыслил в этом же направлении. Во время поиска вариантов нарвался на формулу преобразования rgb в decimal ((RRR*1)+(GGG*256)+(BBB*65536)). Теперь буду пробовать всё имеющееся собрать воедино...
MKN, спасибо тебе за помощь... Уважуха... |
Отправлено: 18:19, 11-02-2025 | #2885 |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Думаю, что вопрос можно считать закрытым. Вот конечный результат:
Код:
!include Colors.nsh
!include LogicLib.nsh !define /IfNDef CC_ANYCOLOR 0x00000100 !define /IfNDef CC_FULLOPEN 0x00000002 OutFile "colors.exe" ShowInstDetails show Section System::Call '*(&l4, p $hWndParent, p0, i0, @r0, i ${CC_ANYCOLOR}|${CC_FULLOPEN}, p, p0, p0)p.r1' System::Call 'COMDLG32::ChooseColorA(pr1)i.r0' ${If} $0 <> 0 System::Call '*$1(i,p,p,i.r0)' IntFmt $0 "%.6X" $0 StrCpy $9 $0 ${EndIf} System::Free $1 ${GetRvalueX} $0 "$9" ${GetGvalueX} $1 "$9" ${GetBvalueX} $2 "$9" #HexToDecimal((RRR*1)+(GGG*256)+(BBB*65536)) IntOp $R3 $0 * 1 IntOp $R4 $1 * 256 IntOp $R5 $2 * 65536 IntOp $R6 $R3 + $R4 IntOp $R7 $R6 + $R5 MessageBox MB_OK " Hex: $9 $\n RGB: $0,$1,$2 $\n Decimal: $R7" SectionEnd |
Отправлено: 23:25, 11-02-2025 | #2886 |
Пользователь Сообщения: 112
|
Профиль | Сайт | Отправить PM | Цитировать Вопрос тупой, наверное, но не могу сообразить, в чем причина.
Есть мой старый сценарий, с помощью которого был создан необходимый инсталлятор. Возникла потребность обновить этот инсталлятор. Компилятор почему-то стал запинаться на этой фразе, а именно на имени с пробелом: вместо одного параметра, он видит два. Проблема в имени с пробелом. Если убрать пробел, ошибка исчезает. !insertmacro VPatchFile "genpat\Pro.pat" "$INSTDIR\super puper-3.exe" "$INSTDIR\temporaryfile.exe" Чего ему нужно? Может это связано с недавней переустановкой системы (Win10x64) и софта? Так раньше на этом же железе, системе и софте все нормально работало. Пробовал NSIS 3.05 и 3.08. |
Отправлено: 23:58, 11-02-2025 | #2887 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Kopejkin,
А если поэксперементировать с одинарными кавычками и не брать в кавычки один из параметров ? Типа : nsExec::ExecToStack 'CMD.exe /C if 1==1 "c:\path with spaces\app.exe" param1 "par am 2"' Alex S, Хмм... А не занимались ли мы ерундой с конвертированием ? Из функции ведь значения получаются как раз в decimal... Ничего конвертировать вообще не надо... RGB сбило с толку... ![]() System::Call '*$1(i,p,p,i.r0)' MessageBox MB_OK $0 ;decimal |
Последний раз редактировалось MKN, Вчера в 15:54. Отправлено: 11:37, Вчера | #2888 |
![]() Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
![]() В файле VPatchLib.nsh заключи переменные путей, которые заносятся в стек, в двойные кавычки. Строки 16-17 Сохрани изменения в файле. ![]() |
|
Отправлено: 19:01, Вчера | #2889 |
Пользователь Сообщения: 112
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Цитата Flix:
![]() Для таких ![]() P.S. Инсталлятор был создан в октябре 2020 года. У меня сохранено две версии NSIS 3.05 - оригинальная и русифицированная от Leserg (wylek.ru). В последней и был создан тот инсталлятор. Специально посмотрел содержимое VPatchLib.nsh. В русифицированной версии в строках 16-17 есть кавычки, в оригинальной версии кавычек нет. В оригинальной версии NSIS 3.08 кавычек тоже нет. Вероятно, с тех пор в моих сценариях не встречалось имен файлов с пробелами в макросах VPatch, поэтому и пробемы не возникало. Еще раз спасибо! |
||
Отправлено: 00:29, Сегодня | #2890 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|