|
Компьютерный форум 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 |
Старожил Сообщения: 152
|
Профиль | Отправить PM | Цитировать Для убидительности проверил и на SP3 (Windows XP Home Edition)
http://dropi.ru/qMy.jpg Все образы с MSDN. Баг реально есть и именно на Home Edition. ссылка на оригинальные образы http://yadi.sk/d/OOa1SUsk7oKs0 |
Последний раз редактировалось Limonica, 23-10-2013 в 09:37. Отправлено: 01:37, 23-10-2013 | #621 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Ещё раз об определении архитектуры процессора. Был предложен плагин, но можно и так (когда то уже было...) :
OutFile "PROCESSOR_ARCHITECTURE.exe" ; Функция GetNativeSystemInfo получает информацию о текщей системе приложению, которое запущено под WOW64. ; Если функция вызывается из 64-битного приложения, она эквивалентна функции GetSystemInfo. Section ;System::Alloc 32 System::Alloc 36 Pop $0 System::Call "Kernel32::GetNativeSystemInfo(i) v (r0)" System::Call "*$0(&i2 .r1)" System::Free $0 StrCmp $1 0 0 +2 MessageBox MB_OK "PROCESSOR_ARCHITECTURE : INTEL " StrCmp $1 9 0 +2 MessageBox MB_OK "PROCESSOR_ARCHITECTURE : AMD64" StrCmp $1 6 0 +2 MessageBox MB_OK "PROCESSOR_ARCHITECTURE : IA64 " StrCmp $1 0xffff 0 +2 MessageBox MB_OK "PROCESSOR_ARCHITECTURE : UNKNOWN " SectionEnd |
Последний раз редактировалось MKN, 23-10-2013 в 18:25. Отправлено: 17:45, 23-10-2013 | #622 |
Старожил Сообщения: 152
|
Профиль | Отправить PM | Цитировать kotkovets, когда ожидать фикс?
|
Отправлено: 23:13, 23-10-2013 | #623 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Limonica:
неправильно возвращается значение, возвращаются в стек два значения: Professional и Home Edition с учетом этого факта подправил winver2.nsh p.s исправлена работа в юникодной версии NSIS |
|
------- Последний раз редактировалось kotkovets, 15-11-2013 в 20:28. Отправлено: 00:54, 24-10-2013 | #624 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Друзья, заколебался(( Не понимаю что делать(
Вот бесполезный код, собранный специально, чтобы посмотреть в каком порядке идет обработка кода. Мне нужно, чтобы при наличии окон в коде, у меня он обрабатывался последовательно. Т.е. сначала цикл 1, потом вложенный в него цикл 2, потом уже переходил к циклу 3 в следующей функции, у которой роль обрабатывать заданное в 1 и 2 цикле. В первом и втором цикле задаются массивы. Помогите, пожалуйста, или направьте на нужную литературу, да хоть на английском. Может пойму... !include nsDialogs.nsh !include LogicLib.nsh Name "nsDialogs Example" OutFile "nsDialogs Example.exe" XPStyle on var Num1 var NumCash var Dialog var Label1 var Label2 Page custom test0 test1 Function test0 MessageBox MB_OK "До цикла" ${ForEach} $R6 0 1 + 1 nsDialogs::Create 1018 Pop $Dialog ${If} $Dialog == error Abort ${EndIf} ${NSD_CreateLabel} 0 0 100% 33u "окно цикла 1 $\n R6=$R6" Pop $Label1 MessageBox MB_OK "Цикл1 $R6" StrCpy $Num1 $NumCash nsDialogs::Show ${ForEach} $R5 0 1 + 1 nsDialogs::Create 1018 Pop $Dialog ${If} $Dialog == error Abort ${EndIf} ${NSD_CreateLabel} 0 0 100% 33u "окно цикла 2 $\n R5=$R5" Pop $Label2 MessageBox MB_OK "Цикл2 $R5" nsDialogs::Show ${Next} ${Next} FunctionEnd Function test1 ${ForEach} $R7 0 1 + 1 MessageBox MB_OK "Цикл3 $R7" ${Next} FunctionEnd Section SectionEnd |
------- Отправлено: 01:21, 24-10-2013 | #625 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата alexfinik:
2. В созданном диалоге разрушать, скрывать или создавать в цикле дочерние элементы диалога.. 3. Функция test1 выполняется при закрытии (выполнении) функции test0 |
|
------- Отправлено: 01:45, 24-10-2013 | #626 |
Старожил Сообщения: 152
|
Профиль | Отправить PM | Цитировать kotkovets, огромное человеческое спасибо!
|
Отправлено: 02:05, 24-10-2013 | #627 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Разнообразные параметры ОС (версия, Build, SP и пр. )можно определить и с помощью WMI хедера.
Например : ;http://nsis.sourceforge.net/WMI_header OutFile "OperatingSystemInfo.exe" !include MUI2.nsh !include WMI.nsh !include LogicLib.nsh !insertmacro MUI_LANGUAGE "English" Section ; короткое описание версии операционной системы ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem Caption callback_Function ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem Version callback_Function ; последний установленный сервис-пак (строка); если никакой сервис-пак не установлен, пустая строка. ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem CSDVersion callback_Function ; версия сервис-пака ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem ServicePackMajorVersion callback_Function ; подверсия сервис-пака ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem ServicePackMinorVersion callback_Function ; Processor Type ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem BuildType callback_Function ; имя компьютера ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem CSName callback_Function ; зарегистрированный пользователь операционной системы ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem RegisteredUser callback_Function ; идентификатор языка, используемого операционной системой ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem Locale callback_Function ; OSLanguage ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem OSLanguage callback_Function ; тип операционной системы: ; 16 - WIN95, 17 - WIN98, 18 - WINNT, 19 - WINCE ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem OSType callback_Function SectionEnd Function callback_Function #$R0 = result number, $R1 = total results, $R2 = result name System::Call "user32::OemToChar(t R2, t. r2)" detailprint "$2" FunctionEnd |
Последний раз редактировалось MKN, 24-10-2013 в 13:23. Отправлено: 12:31, 24-10-2013 | #628 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Var WMI_Caption Var WMI_Version Var WMI_CSDVersion Var WMI_ServicePackMajorVersion Var WMI_ServicePackMinorVersion Var WMI_BuildType Var WMI_CSName Var WMI_RegisteredUser Var WMI_Locale Var WMI_OSLanguage Var WMI_OSType Var WMI_PushVar ;http://nsis.sourceforge.net/WMI_header OutFile "OperatingSystemInfo.exe" !include MUI2.nsh !include WMI.nsh !include LogicLib.nsh !insertmacro MUI_LANGUAGE "English" Section ; короткое описание версии операционной системы ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem Caption callback_Function StrCpy $WMI_Caption $WMI_PushVar ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem Version callback_Function StrCpy $WMI_Version $WMI_PushVar ; последний установленный сервис-пак (строка); если никакой сервис-пак не установлен, пустая строка. ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem CSDVersion callback_Function StrCpy $WMI_CSDVersion $WMI_PushVar ; версия сервис-пака ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem ServicePackMajorVersion callback_Function StrCpy $WMI_ServicePackMajorVersion $WMI_PushVar ; подверсия сервис-пака ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem ServicePackMinorVersion callback_Function StrCpy $WMI_ServicePackMinorVersion $WMI_PushVar ; Processor Type ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem BuildType callback_Function StrCpy $WMI_BuildType $WMI_PushVar ; имя компьютера ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem CSName callback_Function StrCpy $WMI_CSName $WMI_PushVar ; зарегистрированный пользователь операционной системы ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem RegisteredUser callback_Function StrCpy $WMI_RegisteredUser $WMI_PushVar ; идентификатор языка, используемого операционной системой ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem Locale callback_Function StrCpy $WMI_Locale $WMI_PushVar ; OSLanguage ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem OSLanguage callback_Function StrCpy $WMI_OSLanguage $WMI_PushVar ; тип операционной системы: ; 16 - WIN95, 17 - WIN98, 18 - WINNT, 19 - WINCE ${WMIGetInfo} root\CIMV2 Win32_OperatingSystem OSType callback_Function StrCpy $WMI_OSType $WMI_PushVar ################################################### FileOpen $0 "$EXEDIR\WMI.txt" w FileWrite $0 "=== OperatingSystemInfo.exe ===$\n" FileWrite $0 "$\n$$WMI_Caption = $WMI_Caption" FileWrite $0 "$\n$$WMI_Version = $WMI_Version" FileWrite $0 "$\n$$WMI_CSDVersion = $WMI_CSDVersion" FileWrite $0 "$\n$$WMI_ServicePackMajorVersion = $WMI_ServicePackMajorVersion" FileWrite $0 "$\n$$WMI_ServicePackMinorVersion = $WMI_ServicePackMinorVersion" FileWrite $0 "$\n$$WMI_BuildType = $WMI_BuildType" FileWrite $0 "$\n$$WMI_CSName = $WMI_CSName" FileWrite $0 "$\n$$WMI_RegisteredUser = $WMI_RegisteredUser" FileWrite $0 "$\n$$WMI_Locale = $WMI_Locale" FileWrite $0 "$\n$$WMI_OSLanguage = $WMI_OSLanguage" FileWrite $0 "$\n$$WMI_OSType = $WMI_OSType" FileClose $0 execshell open "$EXEDIR\WMI.txt" quit ################################################### SectionEnd Function callback_Function #$R0 = result number, $R1 = total results, $R2 = result name System::Call "user32::OemToChar(t R2, t. r2)" detailprint "$2" StrCpy $WMI_PushVar $2 FunctionEnd |
|
------- Отправлено: 13:12, 24-10-2013 | #629 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать MKN
Цитата:
точнее гибридно.. |
|
------- Отправлено: 13:34, 24-10-2013 | #630 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|