|
Компьютерный форум 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 | Цитировать Для определения оборудования в NSIS , используют обычно HwInfo plug-in (а других просто нет...) ( http://nsis.sourceforge.net/HwInfo_plug-in )
Но возможности его весьма убоги. Есть ещё CPUFeatures, определяет массу параметров CPU (почему то кроме названия проца... ) И похоже, что другого, тем более универсального, инструментария - нет... Кое что конечно можно получить с помощью API и выудить из реестра... Только это довольно-таки громоздко в коде. Например, определяем сетевой адаптер и некоторые его параметры : OutFile "LanDetect.exe" SetPluginUnload alwaysoff !define maxsize 4096 Section System::Alloc ${maxsize} pop $3 System::Call 'iphlpapi::GetAdaptersInfo(i r3r4, *l ${maxsize} r2)i.r1' ;MessageBox MB_OK "GetAdaptersInfo return is $1" System::Call '*$4(i.r4,i,&t260.r5, &t132.r6, i.r7, l.r8)' Math::Script "hex={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};" Math::Script "s=''; a=r8; b=r7; #{b-->0,s=s+hex[a/16%16]+hex[a%16]+#[b>0,'-','']; a=a/256;}; r9=s;" MessageBox MB_OK "Adapter name is $5$\ndesc $6$\naddr len $7$\naddr $8$\nMacAddr: $9" System::Free 0 Math::Script "" SectionEnd OutFile "MemInfo.exe" Section System::Alloc 64 Pop $1 System::Call "*$1(i64)" ; Функция GlobalMemoryStatus позволяет получить информацию про текущее использование системой как физической, так и ;виртуальной памяти. ;Информация, возвращаемая функцией GetMemoryStatusEx, постоянно изменяется. Нет никакой гарантии, что два последовательных ;вызова этой функции вернут одинаковые значения. System::Call "Kernel32::GlobalMemoryStatusEx(i r1)" System::Call "*$1(i.r2, i.r3, l.r4, l.r5, l.r6, l.r7, l.r8, l.r9, l.r10)" System::Free $1 ; convert the Total Physical Memory which is in bytes to Mbytes System::Int64Op $4 / 1048576 Pop $4 System::Int64Op $5 / 1048576 Pop $5 System::Int64Op $6 / 1048576 Pop $6 System::Int64Op $7 / 1048576 Pop $7 System::Int64Op $8 / 1048576 Pop $8 System::Int64Op $9 / 1048576 Pop $9 MessageBox MB_OK "Structure size: $2 bytes" MessageBox MB_OK "Memory load: $3%" MessageBox MB_OK "Total physical memory: $4 Mb" MessageBox MB_OK "Free physical memory: $5 Mb" MessageBox MB_OK "Total page file: $6 Mb" MessageBox MB_OK "Free page file: $7 Mb" MessageBox MB_OK "Total virtual: $8 Mb" MessageBox MB_OK "Free virtual: $9 Mb" SectionEnd Возможности его широки и не объятны, только не понимает он к сожалению по русски. К примеру, при определении сетевых адаптеров, видим сплошные кракозябры в описании... OutFile WMI.exe RequestExecutionLevel Admin !include MUI2.nsh !include WMI.nsh !include LogicLib.nsh !insertmacro MUI_LANGUAGE "English" Section "test" #List network adapters: ${WMIGetInfo} root\CIMV2 Win32_NetworkAdapter name callback_Function SectionEnd Function callback_Function #$R0 = result number, $R1 = total results, $R2 = result name detailprint "$R0/$R1=$R2" FunctionEnd |
Последний раз редактировалось MKN, 27-02-2013 в 18:26. Отправлено: 18:03, 27-02-2013 | #301 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Друзья, насколько НСИС дружит с Вин8 ?
Возможно вопрос уже задавался... Если что, извиняюсь... |
Отправлено: 13:11, 28-02-2013 | #302 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Aster:
|
|
Отправлено: 13:40, 28-02-2013 | #303 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать MKN, благодарю, не подскажете ещё, взаимодействия с реестром также корректно работают? Создание ключей, удаление ключей в реестре и т.д
|
Отправлено: 13:53, 28-02-2013 | #304 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Aster,
Быстрее и проще проверить самому. И с реестром всё хорошо работает. Что и как сделаешь, то и получишь. Делай всё согласно доку и нашему Справочнику - и всё будет так, как надо. |
Отправлено: 15:06, 28-02-2013 | #305 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 16:30, 28-02-2013 | #306 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
|
|
Последний раз редактировалось MKN, 28-02-2013 в 17:01. Отправлено: 16:40, 28-02-2013 | #307 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
|
|
------- Отправлено: 17:40, 28-02-2013 | #308 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Давно интересует такой вопрос - может ли NSIS работать с окнами класса Internet Explorer_Server ? (Это что то связанное с GetIHTMLDocument2 ) ( К примеру, Corel их вовсю применяет в своих инсталлерах , да и др. ПО тоже. ) |
|
Последний раз редактировалось MKN, 28-02-2013 в 17:59. Отправлено: 17:45, 28-02-2013 | #309 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Цитата Valdise:
;-Создание ярлыков из INI-файла ;-!Радиокнопка ВСЕМ !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "io_Shortcut_XXX.ini" "Field 3" "State" StrCmp $INI_VALUE "1" "" +2 SetShellVarContext all ;current- для текущего ПО УМОЛЧАНИЮ!!! ;-!Радиокнопка ТЕКУЩЕМУ !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "io_Shortcut_XXX.ini" "Field 4" "State" StrCmp $INI_VALUE "1" "" +2 SetShellVarContext current P.S Может кому понадобится, поэтому хвастаюсь |
|
------- Последний раз редактировалось Valdise, 01-03-2013 в 10:15. Отправлено: 10:09, 01-03-2013 | #310 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|