|
Компьютерный форум 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 |
![]() Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Dodakaedr:
GetFullPathName /SHORT $0 "$PROGRAMFILES" StrCpy $0 '$0 "%1"' MessageBox MB_OK|MB_ICONINFORMATION "$0" Протестируйте в общем Есть также WinAPI функция, делающая тоже самое |
|
------- Отправлено: 00:15, 29-09-2015 | #1851 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Name "NSIS archive folder"
Page instfiles OutFile "NSIS archive folder.exe" InstallDir "$EXEDIR\NSIS archive folder" SetCompressor /SOLID lzma !define RUNASADMIN !ifndef RUNASADMIN RequestExecutionLevel 'admin' ;Require admin rights on NT6+ (When UAC is turned on) !else RequestExecutionLevel 'admin' !endif !include "FileFunc.nsh" !include "LogicLib.nsh" !include "TextFunc.nsh" !include "WordFunc.nsh" !insertmacro GetSize Function .onInit File "/oname=$TEMP\7za.exe" "7za\7za.exe" FunctionEnd var /global InSize var /global OutSize var /global SZ_1 var /global SZ_2 var /global SZ_3 Section "Program" P1 DetailPrint "Compressored filder..." Setoutpath "$INSTDIR" WriteINIStr "$INSTDIR\CatsSoft © 2015.url" "InternetShortcut" "URL" "http://portableroapps.blogspot.com/" ${If} ${FileExists} "$INSTDIR\CatsSoft © 2015.url" nsExec::ExecToLog '"$TEMP\7za.exe" a "archive.7z" "$INSTDIR"' ${EndIf} Delete "$TEMP\7za.exe" ${GetSize} "$INSTDIR" "/M=*.* /S=0K" $SZ_1 $SZ_2 $SZ_3 StrCpy $InSize 1024 StrCpy $InSize $SZ_1 / 1024 StrCpy $0 0 StrCpy $InSize $SZ_1 StrCpy $1 $InSize IntCmp $1 1024 +3 +1 +3 StrCpy $1 "$1.0 KB" Goto +12 IntOp $1 $1 * 100 IntOp $1 $1 / 1024 StrCpy $2 $1 "" -1 StrCpy $3 $1 1 -2 StrCpy $1 $1 -2 IntCmp $2 5 +1 +2 +1 IntOp $3 $3 + 1 StrCmp $3 10 +1 +3 StrCpy $3 0 IntOp $1 $1 + 1 StrCpy $1 "$1.$3 MB" /* How can pass here and GB */ StrCpy $OutSize $1 Messagebox MB_OK|MB_USERICON 'Size folder: $OutSize' SectionEnd |
Последний раз редактировалось ZaxBoys66, 30-09-2015 в 17:43. Отправлено: 17:06, 30-09-2015 | #1852 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Подскажите как изменить путь в скрипте при установке портативной и обычной версии программы .
|
Отправлено: 19:05, 02-10-2015 | #1853 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать ZaxBoys66, Спасибо огромное ! Буду пытаться прикрутить к своему скрипту.
|
Отправлено: 21:51, 02-10-2015 | #1854 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Иногда в Windows x64 необходимо определить разрядность установленного приложения (исполняемого файла).
Причём, установленного не в $PROGRAMFILES64 или $PROGRAMFILES, что могло бы служить ориентиром разрядности. А ещё имя исполняемого файла одинаково и для x32 и для x64. Как тут быть ? ![]() Поможет функция GetBinaryType. OutFile "GetBinaryType.exe" /* https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364819(v=vs.85).aspx 0: result := '32-bit Windows-based'; 1: result := 'MS-DOS – based'; 2: result := '16-bit Windows-based'; 3: result := 'PIF for MS-DOS – based'; 4: result := 'POSIX – based'; 5: result := '16bit-OS/2'; 6: result := '64-bit Windows-based'; */ Section StrCpy $0 "$EXEDIR\unknown_bit.exe" System::Call `kernel32::GetBinaryType(t r0, *i .r2)` MessageBox MB_OK "$2" SectionEnd |
Последний раз редактировалось MKN, 06-10-2015 в 18:25. Отправлено: 18:20, 06-10-2015 | #1855 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Когда то рассматривалось, как определять дефолтовое приложение (путь и имя) для открытия определённых типов файлов с помошью функции FindExecutable.
Ту же операцию можно сделать немного проще с помощью функции AssocQueryString. !define ASSOCSTR_EXECUTABLE 2 !define ASSOCF_NOTRUNCATE 0x00000020 !define ASSOCF_REMAPRUNDLL 0x00000080 !define ASSOCF_NOFIXUPS 0x00000100 System::Call 'SHLWAPI::AssocQueryString(i ${ASSOCF_NOTRUNCATE}|${ASSOCF_REMAPRUNDLL}|${ASSOCF_NOFIXUPS}, i ${ASSOCSTR_EXECUTABLE}, t ".html", t "open", t.r1, *i ${NSIS_MAX_STRLEN})i.r0' MessageBox MB_OK "EXECUTABLE $1" Используя AssocQueryString , в Windows 10, для штатных интегрированных приложений получаем - C:\Windows\system32\LaunchWinApp.exe Возможно это связано с особенностями работы собственных приложений в новой ОС... Для автономно установленных приложений (например, для Хрома и т.д. ) - всё нормально. Как крайний выход из положения, в Windows 10 можно получить только имя дефолтового приложения, если использовать константу ASSOCSTR_FRIENDLYAPPNAME |
Отправлено: 14:37, 10-10-2015 | #1856 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Всем доброго времени суток! Имеется проблема решение которой затрудняюсь найти. В коде скрипта подключен плагин "nsArray". Массив полноценно, нормально работает при использовании его элементов. НО, при условии, что текст элементов написан на английском. Как только в элементе массива появляется русский текст, программа начинает крашиться, на этапе компиляции ошибок нет. Пробовал сохранять исходник в разных кодировках, безрезультатно. Сталкивался кто-нибудь?
nsArray::SetList MyArray "7-Zip" "Любой текст" "Adobe Reader" "Logitech Webcam" /end ${nsArray_ToString} MyArray $R9 |
Отправлено: 14:49, 17-10-2015 | #1857 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата lavey13:
|
|
------- Отправлено: 08:37, 19-10-2015 | #1858 |
![]() Пользователь Сообщения: 95
|
Профиль | Отправить PM | Цитировать Цитата lavey13:
![]() |
|
Отправлено: 22:38, 19-10-2015 | #1859 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать На Windows 10 выполняю
${WinVerGetMajor} $R0 ${WinVerGetMinor} $R1 StrCpy $R0 $R0$R1 В результате в $R0 = 62, что соответствует Windows 8... Как лучше определить, что юзаем десятку? |
------- Отправлено: 14:06, 22-10-2015 | #1860 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|