Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.
Krinkels
29-12-2013, 00:13
Случаем не знаете, что нужно сделать, чтобы размеры получались меньше? »
Сборка идет как Debug или же Release?
Сборка идет как Debug или же Release? »
Здравствуйте!
По правде сказать, я не знаю. Просто решил попробовать и посмотреть что получится. Делаю все так, как написано у разработчика в рекомендациях по сборке NSIS (http://nsis.sourceforge.net/Docs/AppendixG.html). Установил Python, SCons, Zlib, WxWidget и Microsoft Visual C++. Потом просто в командной строке, из под каталога с исходниками NSIS, набираю scons dist-installer и нажимаю [Enter]. Выполняется компиляция и создание дистрибутива. А про Debug или Release там ничего не сказано. Но судя по вашему вопросу, подозреваю, что сборка выполняется Debug. Чтобы знать наверняка, надо будет сценарии scons просмотреть. Спасибо за наводку!
Здраствуйте.
Вопрос такого рода: как добавить к инсталятору дополнительные ключи тихой установки, потипу: /S /RU устанавливается русская версия программы, /S /EN английская соответственно.
Здраствуйте.
Вопрос такого рода: как добавить к инсталятору дополнительные ключи тихой установки, потипу: /S /RU устанавливается русская версия программы, /S /EN английская соответственно. »
Это можно сделать после прочтения Справочника по NSIS (http://forum.oszone.net/thread-168287.html)
K.A.V., ну да, это как хочешь узнать из учебника географии про Японию, но тебя для этого посылают читать весь учебник =)
ну а если серьезно.. я читал справку (http://forum.oszone.net/thread-168287.html), даже полную справку (http://av-mag.ru/doc/nsis.htm) читал, но я не смог разобраться как это все устроено. И собственно вопрос: может есть посты, где можно об этом почитать, тема, раздел, кто нибудь из людей поможет...
2ой вопрос: в кастомной странице (nsDialog) добавил картинку, потом сделал так чтобы картинка менялась при переключении радиобутонов.. все хорошо все меняется, но взял я скомпилированный exe файл и запустил на другом ноутбуке и там нет картинок (но появились когда я их положил рядом с exeшником). Как интегрировать их в ехешник?
3ий вопрос: проблема касается переменных, а в данном случае $DESKTOP. В моей системе папка Десктоп перенесена на диск Д (D:\Desktop), но переменная определяет старый путь (C:\Users\SateneX\Desktop). Это как нибудь лечится? или придётся извращаться с выдиранием значения пути рабочего стола из реестра?
K.A.V., ну да, это как хочешь узнать из учебника географии про Японию, но тебя для этого посылают читать весь учебник »
Потому что вы не первый, кто приходит сюда и задаёт вопросы, которые описаны в файле справке, для этого и был создан справочник, чтобы вопросов меньше было, а здесь получается как приколы, когда людям лень читать инфу и им "проще и быстрей" зайти и написать вопрос в этой теме (вон пару страничек назад был один такой "кадр").
ну а если серьезно.. я читал справку, даже полную справку читал, но я не смог разобраться как это все устроено. И собственно вопрос: может есть посты, где можно об этом почитать, тема, раздел, кто нибудь из людей поможет... »
Скачайте старенький HM NIS Edit, я начинал с него, там есть прекрасный мастер, который может создать первый ваш исходник, создаёте, потом открываете справочник и ищите, какая функция/команда к чему относится, чего нет справочнике - здесь растолкуем, если сами знаем
Вам нужно читать команды (для обработки ключей)
"Перевод справки NSIS => GetParameters"
"Перевод справки NSIS => GetOptions"
А как вы там уже будете это обрабатывать - не знаю, либо вызов определённой функции (в функции Перевод справки NSIS => Стандартные функции => .onInit) в зависимости от указанного ключа, в которой будет происходит распаковка нужного файла локализации...не знаю, смотрите сами
2ой вопрос: в кастомной странице (nsDialog) добавил картинку, потом сделал так чтобы картинка менялась при переключении радиобутонов.. все хорошо все меняется, но взял я скомпилированный exe файл и запустил на другом ноутбуке и там нет картинок (но появились когда я их положил рядом с exeшником). Как интегрировать их в ехешник? »
Плохо значит вы читали справочник, если не обманываете
"Перевод справки NSIS => File"
3ий вопрос: проблема касается переменных, а в данном случае $DESKTOP. В моей системе папка Десктоп перенесена на диск Д (D:\Desktop), но переменная определяет старый путь (C:\Users\SateneX\Desktop). Это как нибудь лечится? или придётся извращаться с выдиранием значения пути рабочего стола из реестра? »
По этому вопросу не знаю, таких проблем не было, т.к. перенос папок и их последствия не рассмматривал, скорее всего да, придётся выдирать из реестра, но в реестре они конкретно прописаны все в одном месте, с ходу где не скажу, не помню
AlekseyPopovv
02-01-2014, 20:48
Как сделать что бы программа (к примеру "Starus FAT Recovery") запускалась от имени администратора?
ExecWait "$EXEDIR\${APPDIR}\${APPEXE}"
kotkovets
02-01-2014, 21:20
Как сделать что бы программа (к примеру "Starus FAT Recovery") запускалась от имени администратора? »
http://forum.oszone.net/showpost.php?p=1830962
3ий вопрос: проблема касается переменных, а в данном случае $DESKTOP. В моей системе папка Десктоп перенесена на диск Д (D:\Desktop), но переменная определяет старый путь (C:\Users\SateneX\Desktop). Это как нибудь лечится? или придётся извращаться с выдиранием значения пути рабочего стола из реестра? »
никак не могу решить данную проблему
Function .onInit
ReadRegStr $5 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Desktop"
FunctionEnd
Section
MessageBox MB_YESNO "путь к столу $5"
CreateShortCut "$5\${PRODUCT_NAME}.lnk" "$INSTDIR\bin\x86\3DMark11.exe"
SectionEnd
MessageBox отображает путь D:\Desktop, ярлык создается C:\Users\SateneX\Desktop.. помимо D:\Desktop пробовал создавать в D:\, c:\, d:\papka, c:\papka с этими директориями все впорядке
UPD. RequestExecutionLevel (юзер, админ, хайт) вот что было нужно
добрый вечер всем.
Не подскажите как сделать так чтобы на этапе инсталляции файлов при установки определённого компонента появлялось маленькое окошко например с таким содержанием "установка директХ" и соответственно когда компонент установился окошечко закрывалось.
Не подскажите как сделать так чтобы на этапе инсталляции файлов при установки определённого компонента появлялось маленькое окошко например с таким содержанием "установка директХ" и соответственно когда компонент установился окошечко закрывалось. »
В начале кода пропишите:
!include "WinMessages.nsh"
Section "Установка DirectX"
Banner::show "Подготовка к установке..."
Banner::getWindow
Pop $1
GetDlgItem $2 $1 76
SendMessage $2 ${WM_SETTEXT} 0 "STR:Пожалуйста, подождите..."
GetDlgItem $2 $1 1030
SendMessage $2 ${WM_SETTEXT} 0 "STR:Установка DirectX..."
Sleep 2000
; ... Ваш код
; ... Ваш код
; ... Ваш код
SendMessage $2 ${WM_SETTEXT} 0 "STR:Удаление временных файлов..."
Sleep 2000
; ... Ваш код
; ... Ваш код
; ... Ваш код
Banner::destroy
SectionEnd
Команду "Sleep" удалите потом, это просто для примера вам, запустите, посмотрите как смотрится и удалите :)
K.A.V., благодарю.. а иконку нельзя убрать в диалоговом окне?
K.A.V., благодарю.. а иконку нельзя убрать в диалоговом окне? »
Banner::show "Подготовка к установке..."
Banner::getWindow
Pop $1
GetDlgItem $2 $1 -1
ShowWindow $2 0
GetDlgItem $2 $1 76
SendMessage $2 ${WM_SETTEXT} 0 "STR:Пожалуйста, подождите..."
GetDlgItem $2 $1 1030
SendMessage $2 ${WM_SETTEXT} 0 "STR:Установка DirectX..."
Sleep 2000
; ... Ваш код
; ... Ваш код
; ... Ваш код
SendMessage $2 ${WM_SETTEXT} 0 "STR:Удаление временных файлов..."
Sleep 2000
; ... Ваш код
; ... Ваш код
; ... Ваш код
Banner::destroy
Если хотите настроить поточнее вид баннера, то прописывайте свой UI файл как файл оболочки и редактируйте ресурс 111 через ResHacker или подобные ей программы
!define MUI_UI "файл ресурса.ехе"
где "файл ресурса.ехе" - путь к файлу ресурсов диалогов интерфейса инсталлятора, дефолтные лежат по пути: <NSIS>\Contrib\UIs, за основу возьмите, к примеру, modern.exe, вообщем, экспериментируйте
Доброй ночи =)
kotkovets, вот тут (http://forum.oszone.net/post-1830962-2193.html) вы выкладывали модификацию плагина InvokeShellVerb
столкнулся с проблемой или неисправностью данного.. приступим к описанию:
Имеею 2 рабочие (x86 и x64) и 1 виртуальную (x86x64) машины.
Прописываю дефолтный путь установки InstallDir "$PROGRAMFILES\...." ну и вставляю в код ${PinToTaskBar}, все хорошо прикрепляется и исправно работает в 32 и 64 битных системах.
Далее изменяю путь на InstallDir "$PROGRAMFILES64\..." затем вставляю в код ${PinToTaskBar}, компилю.. на 32 битной системе все хорошо открывается, а на 64битной создается значок на панели инструментов, но при открытии приложения через него (ну или само приложении из директории) они не стакаются, т.е стоят в панели 2 иконки 1ого приложения одна мертвая 2ая запущенная..
прикрепил картинку: 1ое свойства ярлыка 2ое свойства процесса 3 возможность прикрепления хотя пути нахождения программы одинаковые.. и так со всеми программами из данной директории
з.ы. иконка оживает только в том случае если через нее запустить приложение от администратора
kotkovets
07-01-2014, 18:19
иконка оживает только в том случае если через нее запустить приложение от администратора »
честно у себя проблем не заметил (x64)..
Попробуйте так:
InvokeShellVerb::DoIt "$ProgramFiles64\папка программы" "файл запуска" "5386"
Хедер делает удобную подстановку данных в плагин - и все!..
если проблема осталась.. то, остается у вас косяк или в плагине.
kotkovets, и так тоже пробовал как вы описали.. даже находил похожее проблемы на забугорных форумах..
проблема только в х64 винде при попытки установки в обычный program files (без х86..
воссоздать проблему легко достаточно сменить дефолтный путь установки в c:\program files\XXXXx
скорее всего дело в плагине(
Krinkels
08-01-2014, 11:53
Удалено
Друзья, представляю вам новую версию справочника по NSIS. Добавил туда подсветку синтаксиса. »
Тогда удалите меня из авторства справочника и из всех примеров кодов мой ник, раз вы представляете новую версию справочника, вносите в него изменения без согласия авторов справочника, публикуя общественности
kotkovets
08-01-2014, 12:06
K.A.V., я в курсе, забыл тебя предупредить..
Друзья, нет повода для шума... А вот то, что справочник давно можно было и дополнить и расширить виноваты мы все... И я есно тоже... Ленивы однако... :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC