PDA

Показать полную графическую версию : .: 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

Krinkels
29-12-2013, 00:13
Случаем не знаете, что нужно сделать, чтобы размеры получались меньше? »
Сборка идет как Debug или же Release?

Flix
29-12-2013, 18:02
Сборка идет как 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 просмотреть. Спасибо за наводку!

Saten
02-01-2014, 01:25
Здраствуйте.
Вопрос такого рода: как добавить к инсталятору дополнительные ключи тихой установки, потипу: /S /RU устанавливается русская версия программы, /S /EN английская соответственно.

K.A.V.
02-01-2014, 09:53
Здраствуйте.
Вопрос такого рода: как добавить к инсталятору дополнительные ключи тихой установки, потипу: /S /RU устанавливается русская версия программы, /S /EN английская соответственно. »
Это можно сделать после прочтения Справочника по NSIS (http://forum.oszone.net/thread-168287.html)

Saten
02-01-2014, 11:30
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.
02-01-2014, 11:39
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

Saten
02-01-2014, 22:48
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 (юзер, админ, хайт) вот что было нужно

Saten
04-01-2014, 17:44
добрый вечер всем.
Не подскажите как сделать так чтобы на этапе инсталляции файлов при установки определённого компонента появлялось маленькое окошко например с таким содержанием "установка директХ" и соответственно когда компонент установился окошечко закрывалось.

K.A.V.
04-01-2014, 18:09
Не подскажите как сделать так чтобы на этапе инсталляции файлов при установки определённого компонента появлялось маленькое окошко например с таким содержанием "установка директХ" и соответственно когда компонент установился окошечко закрывалось. »

В начале кода пропишите:
!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" удалите потом, это просто для примера вам, запустите, посмотрите как смотрится и удалите :)

Saten
04-01-2014, 19:12
K.A.V., благодарю.. а иконку нельзя убрать в диалоговом окне?

K.A.V.
04-01-2014, 21:59
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, вообщем, экспериментируйте

Saten
05-01-2014, 02:58
Доброй ночи =)
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"
Хедер делает удобную подстановку данных в плагин - и все!..
если проблема осталась.. то, остается у вас косяк или в плагине.

Saten
07-01-2014, 18:48
kotkovets, и так тоже пробовал как вы описали.. даже находил похожее проблемы на забугорных форумах..
проблема только в х64 винде при попытки установки в обычный program files (без х86..
воссоздать проблему легко достаточно сменить дефолтный путь установки в c:\program files\XXXXx

скорее всего дело в плагине(

Krinkels
08-01-2014, 11:53
Удалено

K.A.V.
08-01-2014, 12:04
Друзья, представляю вам новую версию справочника по NSIS. Добавил туда подсветку синтаксиса. »
Тогда удалите меня из авторства справочника и из всех примеров кодов мой ник, раз вы представляете новую версию справочника, вносите в него изменения без согласия авторов справочника, публикуя общественности

kotkovets
08-01-2014, 12:06
K.A.V., я в курсе, забыл тебя предупредить..

MKN
08-01-2014, 12:16
Друзья, нет повода для шума... А вот то, что справочник давно можно было и дополнить и расширить виноваты мы все... И я есно тоже... Ленивы однако... :)




© OSzone.net 2001-2012