PDA

Показать полную графическую версию : [архив].: NSIS - все вопросы :.


Страниц : 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 147 148 149 150 151 152 153 154 155 156 [157] 158 159 160 161 162 163 164 165 166 167 168 169 170

K.A.V.
03-09-2012, 14:53
дело в том то, что я убрал off. и поставил /SOLID LZMA »
По тому коду, который вы предоставили - там почему-то этого не видно

Значит слишком поздно прописываете команду, приведите саму строку с ошибкой (что пишет компилятор)

Creator000
03-09-2012, 18:53
откуда у меня взялся в установщике IO?
http://i40.fastpic.ru/big/2012/0903/04/44f716a6a7882df83eee4e5e32e82604.png
и как от него избавиться.

kotkovets
03-09-2012, 19:26
откуда у меня взялся в установщике IO? »
инклудинг библиотеки InstallOptions.dll "жестко" привязан к строке кода:
!include "MUI.nsh"
а так привязывается к nsDialogs.dll:
!include "MUI2.nsh"
Почему так? а потому, что в NSIS нет стандартных страничек приветствия и финиша!
Эти странички уже описаны в соответствующих библиотеках, указанные в файле MUI(2).nsh (заготовки страниц - интерфейс MUI)
---
На Все Ваши вопросы есть ответ в справочнике на РуссКом...
ЧитайТе шапку темы...
Creator000
Просьба ТуПых вопросов не задавать - получите такой же ответ.
Это форум для обсуждения NSIS, а не для общения, общайтесь и флудите в другом месте, но не здесь!
Или Вам замечание модератора не указ?

Creator000
03-09-2012, 19:30
kotkovets, а есть тема где могут отвечают на простые вопросы nsis?
в личку никто не помогает - для есть форум. а на форуме - не задавай глупых вопросов, не флуди, так где мне задавать вопросы?

K.A.V.
03-09-2012, 20:14
откуда у меня взялся в установщике IO? »
ioSpecial.ini - это файл настроек диалога "Приветствие" и "Финиш" (${NSISDIR}\Contrib\Modern UI\ioSpecial.ini)
Можете попробовать изменить данный файл и скомпилировать - у вас изменятся данные странички

kotkovets, а есть тема где могут отвечают на простые вопросы nsis? »
а на форуме - не задавай глупых вопросов, не флуди, так где мне задавать вопросы? »
Весь смысл в наших ответов вам в том, что в нашем Справочнике уже есть ответы на ваши "глупые вопросы", вот и всё

Не ленитесь и будьте внимательны, читайте справочник с первой странички и до конца

MaGoth
04-09-2012, 01:32
Привет народ,
Нарисовалось тут у меня еще несколько проблем, и с чем они связаны пока не понял, суть такова:

Есть 3 файла:
test1.nsi - тестовая болванка написана давно и хорошо работает(но только у меня на компе) не зависимо от того каким компиллером собираю ехешник.
рабочий кусок кода из этого скрипта:
!include "MUI.nsh"
!include "WinMessages.nsh"
Name "TB4DFs Example"
OutFile "TB4DFs.exe"
ShowInstDetails nevershow
ShowUnInstDetails nevershow

!insertmacro MUI_LANGUAGE Russian

Section
!insertmacro MUI_HEADER_TEXT "..." "..."
FindWindow $0 "#32770" "" $HWNDPARENT
StrCpy $1 "0"
StrCpy $2 "75"
StrCpy $3 "450"
StrCpy $4 "15"
StrCpy $5 "0x00f0ff"
StrCpy $6 "0x0000ff"

System::Call 'GVX::CPB(i r0, i r1, i r2, i r3, i r4, i r5, i r6, 1, 1)i .r7'
DetailPrint "..."
ShowWindow $7 ${SW_SHOW}
SetDetailsPrint both
StrCpy $8 ".\SA.md"
StrCpy $9 "Test2"
System::Call 'GVX::MVDFExtVolum(t r8, t r9, i r7 )'
ShowWindow $7 ${SW_HIDE}

...

SectionEnd

Function .onInit
!define VFX "GVX.dll"
SetOutPath "."
ReserveFile "${VFX}"
File "${VFX}"
FunctionEnd

Но, если этот код поместить в два других файла (полные версии) скрипта инсталлятора, то при их компиляции начинаются лаги...


test2.nsi - полная версия АНСИ, все компилится и собирается но на финальной странице нет Фокуса, и кнопку завершения нажать нельзя. + при компиляции исчезает один язык из трех используемых.

test3.nsi - полная версия ЮТФ, все компилируется, доступны все требуемые языки, но при запуске кода по отработке .dll начинаются лаги...

В общем хочу реализовать в инсталлере так, так чтобы при вызове .dll-ки с тем или иным параметром, текстовые поля в окне инсталляции менялись в зависимости от того что она выполняет, а по завершении возвращалось исходное сосояние текстовых полей.

nsDialogs не использую, установлен НСИС версии 2,46 (АНСИ - сборка от Виктора_ВГ с бороды.ру и ЮТФ - оф. версия с сайта).
Кто что думает по этому поводу?!

Хотелось бы обсудить эти вопросы с кем нибудь в Аське/Скайпе/ЛС ...
Заранее благодарю. :)

kotkovets
04-09-2012, 09:13
В общем хочу реализовать в инсталлере так, так чтобы при вызове .dll-ки с тем или иным параметром, текстовые поля в окне инсталляции менялись в зависимости от того что она выполняет, а по завершении возвращалось исходное сосояние текстовых полей »
А ну препроцесcор для чего? правильно! он добавит ту или иную строчку кода в зависимости от компилятора (ANSI или юникод)
Пример из справочника, выделение структуры в зависимости от типа компилятора:
Section
!ifndef NSIS_UNICODE ;если не юникод
System::Call "*(i148,i,i,i,i,&t128)i.r6" # выделяем память под структуру размером 148 байт
!else ;если юникод
System::Call "*(i276,i,i,i,i,&w256)i.r6" # для юникода 276 байт (2 байта - 1 символ)
!endif
SectionEnd

MaGoth
04-09-2012, 12:51
kotkovets, не поможешь адаптировать мой скрипт относительно использования кода из твоего примера?
Глянул справку там без пол литры не обойтись... :/


Зы, По мини проге запускаемой в тихом режиме, проверил ее работу в связке с плагином ExecCmd::exec, инсталлер все собирает ошибок никаких нет, как нет и результирующих файлов, которые должны появится в требуемых каталогах.
В случае использования ExecWait все прекрасно работает, окошко отображается и появляются все требуемые файлы в каталогах.
Вопрос: как в итоге избавится от окна проги так, чтобы она при этом срабатывала нормально? Кто что думает ?!

K.A.V.
04-09-2012, 22:17
как нет и результирующих файлов, которые должны появится в требуемых каталогах »
Файлы, я так понимаю, должны появиться после исполнения проги через ExecCmd?
Что за программа, если не секрет?
Приведите так же команду ExecCmd на исполнение приложения

MaGoth
04-09-2012, 23:44
K.A.V.,
Файлы, я так понимаю, должны появиться после исполнения проги через ExecCmd?
Да.

Что за программа, если не секрет?
Самопальный билдер/андпакер + немного работы со звуком. Все подробности в аську или куда ни будь еще, если будет желание помочь.

Приведите так же команду ExecCmd на исполнение приложения.

...
FileOpen $0 "${MNB} Install\comm.vs" w
FileWrite $0 "%%(%%D)%%N%%N"
FileClose $0
SetOutPath "${MNB2} Install2"
ExecCmd::exec '${MNB} Install\GDR.exe ${MNB3} "$INSTDIR\SOdsee.vd" ".. : : " "comm.vs"'
...

Хм.. а не может она не срабатывать, от того что при ее исполнении используется внешний файл(ы) настроек и конфигов, для ее работы?

K.A.V.
05-09-2012, 11:12
Все подробности в аську или куда ни будь еще, если будет желание помочь. »
Желание помогать есть, иначе меня бы не было в этой теме и не было бы справочника ;)
У меня не на столько много времени, чтобы помогать в режиме реального времени

Хм.. а не может она не срабатывать »
Поиграться с кавычками не пробовали??? Может программа не правильно принимает параметры, которые вы ей передаёте, попробуйте заключить в одни кавычки все 3 параметра (у вас же 3 параметра передаётся??)

ExecCmd::exec '${MNB} Install\GDR.exe "${MNB3} $INSTDIR\SOdsee.vd .. : : comm.vs"'


P.S.
Pop $0
ExecCmd::wait $0
Ждать завершения исполнения приложения (ну вдруг вы не указывали)

MaGoth
05-09-2012, 11:44
K.A.V., Поиграться с кавычками не пробовали??? Может программа не правильно принимает параметры, которые вы ей передаёте, попробуйте заключить в одни кавычки все 3 параметра (у вас же 3 параметра передаётся??)
Пробовал, не работает, выдает ошибки на уровне вызова команд при работе инсталлера. Передается 4 параметра.

Будем думать дальше что тут и как...

K.A.V.
05-09-2012, 11:56
выдает ошибки на уровне вызова команд при работе инсталлера »
Что за ошибки то?

Если как вы написали
Самопальный билдер/андпакер »
То пропишите в нём отображение командной строки при запуске (ну я в том смысле, чтобы проверить, все ли параметры программе передаются корректно)

Можете ещё попробовать ExecDos plug-in (http://nsis.sourceforge.net/ExecDos_plug-in), он практически такой же...Я его использую для запуска в скрытом режиме компилятора NSIS в своей программе SFX Creator :)

MaGoth
05-09-2012, 12:43
Что за ошибки то?
Не передаются параметры по изменяемому файлу, для исполнения прогой.

Можете ещё попробовать ExecDos plug-in,
Попробуем. :)

K.A.V.
05-09-2012, 13:02
Не передаются параметры по изменяемому файлу »
comm.vs??
Так вы полный путь, не пробовали прописывать в передаваемом параметре? ;)

MaGoth
05-09-2012, 13:21
K.A.V.,
Так вы полный путь, не пробовали прописывать в передаваемом параметре?
Пробовал и так и эдак, месаги пишут что все ровно, пути все на месте, а файлов нет...

ExecDos plug-in - скрывает прогу, но нет файлов. :/

Зы, Такое ощущение что через плагины содержимое файла не читается.

K.A.V.
05-09-2012, 13:31
Пробовал и так и эдак, месаги пишут что все ровно, пути все на месте, а файлов нет... »
Ну прям магия какая-то :)

Запакуйте всё это дело с комментами к вашей проге в архив и скиньте мне в личку ссылку на скачивание либо вложение, попозже посмотрю, может и разгадаю ваш ребус :)

MaGoth
05-09-2012, 13:35
Добро, после 16:00 как вернусь с работы сделаю.

Creator000
06-09-2012, 22:02
С помощью InstallDir задал каталог установки по умолчанию. Но это просто декорация
SetOutPath задает реальный каталог. и программа устанавливает только туда.


у InstallDir у меня была програм файлс
у setOutPath был темп. программа ставится только в темп, даже если в странице !insertmacro MUI_PAGE_DIRECTORY выбрать другой каталог.
как сделать свободу выбора каталога?

K.A.V.
06-09-2012, 23:21
SetOutPath задает реальный каталог. и программа устанавливает только туда. »
Вы прочитайте внимательно про переменные NSIS
И прочитайте для чего конкретно SetOutPath

$INSTDIR = InstallDir
В SetOutPath указывайте $INSTDIR

Вам с такими темпами и до временного бана не далеко




© OSzone.net 2001-2012