Войти

Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 [143] 144 145 146

iglezz
18-12-2023, 17:34
Какие функции из RegistryFunc.nsh в первую очередь интересуют?

MKN
18-12-2023, 18:15
Какие функции из RegistryFunc.nsh в первую очередь интересуют? »
В наипервейшую очередь мне нужно перечисление всех ключей в HKLM\SOFTWARE\Classes\CLSID с параметрами типа REG_BINARY
В ANSI варианте это - ${RegFind} "${HKLM}\SOFTWARE\Classes\CLSID" "/T=REG_BINARY /V=0" EnumReg
Ну и хорошо бы поиск в таком то разделе таких то ключей и значений...

iglezz
18-12-2023, 18:32
Думаю, RegistryFunc.nsh можно отправлять на пенсию.
Плагин Registry (https://nsis.sourceforge.io/Registry_plug-in) умеет всё и быстрее.

MKN
19-12-2023, 09:23
iglezz, действительно, плагин летом обновился, попробую...

Kopejkin
30-12-2023, 13:36
Можно как-либо исправить нечеткое отображение текста элементов при масштабировании дисплея?
https://images2.imgbox.com/59/b4/magu6zWh_o.png
Так выглядит окно инсталлятора при стандартном масштабировании 125%.
Как видно, четким остается только текст заголовка окна.
У меня разрешение экрана небольшое (1366х768).
На дисплеях FHD это выглядит еще хуже.

iglezz
30-12-2023, 17:54
Kopejkin,
ManifestDPIAware System ; System DPI on Vista/7/8/8.1/10(<10.1607(AU))
ManifestDPIAwareness "PerMonitorV2,System" ; PMv2 on 10.1703(CU)+, System on 10.1607(AU) with NSIS 3.03+

Следует учесть, что в таком случае изображения в MUI будут кривенько отмасштабированы

Kopejkin
30-12-2023, 23:12
Спасибо за подсказку и отсылку на форум Winamp.
Теперь осталось определиться, действительно ли оно мне так уж нужно.

iglezz
31-12-2023, 00:20
Это решение можно найти и на sf.net и на stackoverflow и даже просто перебором доступных значений (детали в документации (https://learn.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process) и исходниках nsis)
Эта комбинация хорошо работает в многомониторной конфигурации с разным масштабом у мониторов при переносе окна установщика с одного монитора на другой. При этом реализации Per-Monitor V2 DPI Awareness в nsis пока нет.

Свои изображения можно избавить от мыла через подготовку изображений под несколько значений масштабирования (100,125,150,..%) до или в процессе сборки установщика. При запуске - получить от системы используемый масштаб и загрузить подходящее изображение.
С MUI такое не прокатит без переписывания кода, отвечающего за изображения.

Если в Win API найдутся методы качественного масштабирования битмапов - можно будет применить их.

inco1
04-01-2024, 07:53
iglezz, Хорошего дня.
Вы ранее приводили пример быстрого извлечения/поиска информации в файле.
Не могли бы вы привести еще и пример удаления строки таким же способом.
Например удаления строк из файла host
0.0.0.0 www.google.com
127.0.0.1 www.google.com
И еще не известно, что там может быть, 0.0.0.0 www.google.com или 127.0.0.1 www.google.com и неизвестна длина пробела после 0.0.0.0 и 127.0.0.1.

iglezz
04-01-2024, 14:43
Наиболее адекватный способ работы с файлом hosts в nsis на сегодня - использование программы вроде BlueLife Hosts Editor.
Обработка hosts-записей не столь тривиальна, как это может казаться на первый взгляд.

inco1
04-01-2024, 15:57
iglezz,
Наиболее адекватный способ работы с файлом hosts в nsis на сегодня - использование программы вроде BlueLife Hosts Editor.

Я правильно понял, вы советуете в установщик вставить два файла программы BlueLife Hosts Editor х32 и х64 версию и в нужном месте, когда дойдет установка до проверки файла hosts, вызывать эту программу и пусть пользователь с помощью этой программы исследует hosts и если обнаружит некие записи, которые нужно удалить, то удалит их с помощью этой программы?

iglezz
04-01-2024, 16:20
inco1, BlueLife Hosts Editor умеет работать с командной строки, при этом достаточно одного 32-битного hEdit.exe

inco1
04-01-2024, 16:33
iglezz, Спасибо, это меняет дело. Попробую.

inco1
07-01-2024, 12:04
Всем доброго дня.
Есть вопрос, на который я нигде не нашел ответа. Помогите, пожалуйста.
Как известно некоторые программы в реестре прописывают свое место установки в кавычках и в конце ставят слэш \.
Это в реестре выглядит так:

InstallLocation REG_SZ "C:\Program Files\"

или

InstallLocation REG_SZ "C:\Program Files"

Ни первое, ни второе, если это считать с реестра и записать в переменную не работает для определения файла из этой папки.

Для считывания и записи в переменную использую ReadRegStr

В связи с этим вопрос, как можно удалить кавычки и слэш, чтобы в переменную записалось правильно C:\Program Files, без кавычек и слэша в конце?

VV189
09-03-2024, 12:44
В большинстве сборок портативных программ созданных с помощью NSIS которыми пользуюсь, есть директория \App\AppInfo\Launcher с файлами настроек. Это ведь не нативная фишка NSIS, где найти пример такого исходника?

inco1
16-03-2024, 16:10
VV189,
Лаунчеры в портативках, которыми вы пользуетесь, созданные в PortableApps com, а не в NSIS.
Лаунчеру, созданном в NSIS не нужен файл сценария App\AppInfo\Launcher\"Прога".ini, потому что работа идет напрямую без "посредника". Это, примерно, как передаешь сообщение с уст в уши посыльному, а посыльный передает со своих уст в уши нужному человеку, а не прямое сообщение с уст в уши нужному человеку.
PortableApps com имеет свою собственную оболочку, на основе NSIS. Для "нормальных" лаунчеров сама оболочка PortableApps com скудненькая и всё равно придется дополнительно писать скрипт "Custom.nsh", который немного расширяет возможности оболочки. Некоторые возможности NSIS даже не удастся реализовать через PortableApps com.

Kopejkin
06-04-2024, 17:36
30 марта NSIS обновился.
Текущая версия: NSIS 3.10 (https://nsis.sourceforge.io/Download)

ali90i
23-04-2024, 19:41
Я создал свою версию репака для IDM с собственным брендингом, заголовком, заставкой и музыкой в ​​​​фоновом режиме, а установщик не автоматизирован, просто распаковываю файлы в папку Program Files, но у меня есть проблема, связанная с расширением браузера для Chrome, Brave и Firefox, я не могу понять, как их интегрировать в браузеры?

ndnsj
25-04-2024, 20:57
Здравствуйте. Для модификации файлов JSON пробовал использовать плагин nsJSON. Столкнулся с проблемой, файл перезаписывается, остается только новая запись. У автора плагина, в docs, про модификацию написано мало, примеров вообще нет: Modifying JSON
------------------------------------------------------------------------
nsJSON::Set [/tree Tree] [NodePath] /value "Value"
Sets the value of the given node. The value can be any single value or it can be JSON code. The node will be created if it does not exist.

Multiple JSON trees can be manipulated at the same time. Add /tree Tree (where Tree is the tree name) before all other plug-in
arguments to specify which JSON tree you are manipulating.

В этом "tree name" кажется все и дело, как правильно написать, перепробовал очень много вариантов- замена вообще не происходит, в случае "" вместо "tree name" - перезапись файла.
Пробовал по автору плагина:
nsJSON::Set /tree Tree 'i18n' 'locale' /value '"en"' /file "$EXEDIR\Data\EDRLab\state.json" ,где Tree у меня должна быть нода 'i18n', начало ветки, и старше нет, NodePath тоже с нее начинается. Пробовал писать по разному.
nsJSON::Serialize /file "$EXEDIR\Data\EDRLab\state.json"

Решение нашел, простой заменой текста другим плагином, но помогите разобраться с nsJSON.

Сырок Дружба
24-05-2024, 11:23
Доброго времени суток, товарищи знатоки. Есть вопрос. Подскажите толковый способ, плагин, макрос снять IP адрес с ПК? Необходим для сверки в процессе установки.
Процесс поиска пока приводит к старым либо неподдерживаемым плагинам.




© OSzone.net 2001-2012