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

Kopejkin
18-08-2013, 20:43
Сразу раскаталась губа (моя) :)
А в WinVer2.nsh будут вноситься изменения для отображения сведений о новых ОС?
Сейчас данные о Windows 8 Pro (х64) отображаются так:
---------------------------
WinGetVerInfo
---------------------------
WinName =
WinType = Business
WinServerName =
WinVersion = 6.2
WinVersionMajor = 6
WinVersionMinor = 2
WinBuildNumber = 9200
WinServicePack =
WinServicePackMajor = 0
WinServicePackMinor = 0
WinPlatformId = 2
WinPlatformArchitecture = 64
---------------------------
ОК

MaGoth:На сколько я знаю Виктор займется... »
Вы о ком, собственно, говорите?
ProcessFunc.nsh
Автор: kotkovets aka Котковец Вячеслав
http://forum.oszone.net/member.php?userid=133945

kotkovets
18-08-2013, 21:08
WinVer2.nsh будут вноситься изменения для отображения сведений о новых ОС? »
конечно, мелкие ошибки там есть..
Вы о ком, собственно, говорите? »
http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=0595&start=1400#lt

icq99999999
19-08-2013, 14:55
Цитата kotkovets:
Код: »
работает хорошо но
при запуске с ключом выполняются и то что должно быть при запуске с ключом и то что должно быть только при обычном запуске
вопрос
как сделать чтобы при запуске с ключом выполнялся только код прописанный именно для запуска с ключом
а при обычном запуске только код для обычного запуска
след вопрос
как сделать чтобы программу сделанную с nsis невозможно было открыть архиватором
след вопрос
нужно скопировать файл "comp.ini" из %temp%\spacep в директорию с прогой
после копирования посмотреть появился ли "comp.ini" в директории с прогой если непоявился то копировать "comp.ini" из %temp%\spacep в %appdata%

kotkovets
19-08-2013, 23:13
при запуске с ключом выполняются и то что должно быть при запуске с ключом и то что должно быть только при обычном запуске
вопрос
как сделать чтобы при запуске с ключом выполнялся только код прописанный именно для запуска с ключом
а при обычном запуске только код для обычного запуск »
!include "FileFunc.nsh"
!include "LogicLib.nsh"

outfile test.exe

Section

ClearErrors
${GetOptions} "$CMDLINE" "/key" $R0
${IfNot} ${Errors}

MessageBox MB_OK "Запуск содержащий ключ: /key" IDOK

${Else}

MessageBox MB_OK "Кроме запуска содержащий ключ: /key" IDOK

${EndIf}

SectionEnd
Конкретно заданным ключом:
Strcpy $1 "$CMDLINE" "" -4 ;берем из $CMDLINE последние 4 символа и заливаем в $1
${If} $1 == "/key"

MessageBox MB_OK "Запуск конкретно с ключом: /key" IDOK

${EndIf}
нужно скопировать файл "comp.ini" из %temp%\spacep в директорию с прогой
после копирования посмотреть появился ли "comp.ini" в директории с прогой если непоявился то копировать "comp.ini" из %temp%\spacep в %appdata% »
в справке на русском есть ответы...
как сделать чтобы программу сделанную с nsis невозможно было открыть архиватором »
http://forum.oszone.net/post-2170433-399.html
---
читать нужно тему. а не листать..

icq99999999
21-08-2013, 15:38
в справке на русском есть ответы... »
там не все ответы
ну в частности как копировать разобрался:
CopyFiles /silent "$EXEDIR\comp.ini" "$INSTDIR\"
а вот как после копирования посмотреть появился ли "comp.ini" в директории с прогой если непоявился то копировать "comp.ini" из %temp%\spacep в %appdata% »
в справке или где то ещё я не нашел
след вопрос
можно ли сделать чтобы при обычном запуске инстала файл не распаковывался, а при запуске с ключом распаковался?

K.A.V.
21-08-2013, 16:19
а вот как
Цитата kotkovets:
после копирования посмотреть появился ли "comp.ini" в директории с прогой если непоявился то копировать "comp.ini" из %temp%\spacep в %appdata% » »
ДА есть там всё! Вы сейчас мне напоминаете многих участников форума, которые задают одни и те же уже разжеванные конкретно для них вопросы.

Описание команды IfFileExists читали в файле справки?

можно ли сделать чтобы при обычном запуске инстала файл не распаковывался, а при запуске с ключом распаковался? »
Разве я лично вам не давал команды (КЛАЦ (http://forum.oszone.net/post-2201613.html#post2201613)), которые нужно прочитать, чтобы научиться обрабатывать командную строку инсталлера?
Перевод справки NSIS => GetParameters: получаем командную строку инсталлятора
Перевод справки NSIS => GetOptions: обрабатываем значение ключа в параметре запуска инсталлятора
+
Перевод справки NSIS => File: Добавляем файлы в инсталлятор


А разве kotkovets вам не давал живые примеры с командной строкой? (КЛАЦ (http://forum.oszone.net/post-2201620.html#post2201620))

MaGoth
21-08-2013, 16:58
Привет народ,
Подскажите плиз, номера кодовых страниц для этих языков:
${LANG_ENGLISH}
${LANG_ROMANIAN}
${LANG_GERMAN}
${LANG_RUSSIAN}
${LANG_ITALIAN}
${LANG_CZECH}
${LANG_POLISH}
${LANG_SPANISH}

Используемых в Нсис, Гулельме какую-то шляпу выдает. Для русской, у него туча раскладок, номера которой все разнятся... Моя в печали..

K.A.V.
21-08-2013, 19:38
Привет народ,
Подскажите плиз, номера кодовых страниц для этих языков:
${LANG_ENGLISH}
${LANG_ROMANIAN}
${LANG_GERMAN}
${LANG_RUSSIAN}
${LANG_ITALIAN}
${LANG_CZECH}
${LANG_POLISH}
${LANG_SPANISH} »
Открываешь файл по пути:
\Program Files\NSIS\contrib\Language files\Файл языка.nlf

\Program Files\NSIS\contrib\Language files\Russian.nlf

# Header, don't edit
NLF v6
# Language ID
1049
# Font and size - dash (-) means default
-
-
# Codepage - dash (-) means ANSI code page
1251


Оно?

MaGoth
21-08-2013, 19:59
K.A.V.,
Сейчас буду смотреть оно или нет, ибо в ютф не все так однозначно.
И как я про ланги забыл... )))

Зы, Все пытаюсь прикрутить текстовуху лиценза на разных лангах, и все никак. Все прочие работают нормально, а эта зараза...

MaGoth
21-08-2013, 20:59
K.A.V.,
Думал с ID прокатит, но что-то не получается файл лиценза сменить... :(

Код пока этот юзаю с одним файлом.:
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE ".\setup\licence.rtf"

А хотелось бы примерно так:
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE ".\setup\en\licence.rtf"
!insertmacro MUI_PAGE_LICENSE ".\setup\fr\licence.rtf"
!insertmacro MUI_PAGE_LICENSE ".\setup\ca\licence.rtf"
...

Мысли есть какие на этот счет ?!

K.A.V.
21-08-2013, 22:41
MaGoth, прочитай про команду LicenseLangString в оригинальной справке к NSIS

LicenseLangString license ${LANG_ENGLISH} license-english.txt
LicenseLangString license ${LANG_FRENCH} license-french.txt
LicenseLangString license ${LANG_GERMAN} license-german.txt
LicenseData $(license)

MaGoth
21-08-2013, 22:50
Да блин, я уже все что можно перепробовал, не работает эта команда, как впрочем и многие другие в попытке изменить файл... :(

kotkovets
22-08-2013, 00:42
Да блин, я уже все что можно перепробовал, не работает эта команда, как впрочем и многие другие в попытке изменить файл.. »
Все работает, качаем для удобства плагин: http://nsis.sourceforge.net/CustomLicense_plug-in
Показ файла лицензии в зависимости от выбранного языка, то бишь от переменной $LANGUAGE
Здесь работает принцип подмены файла лицензии, в функции перед показом странички лицензии.
Для времени компиляции удобно воспользоваться файлом ${NSISDIR}\COPYING - не стоит путь менять без надобности,
если нет файла создаем файл COPYING (не пустышку!!!, хоть с одним символом) в папке, где установлен NSIS.
По скрипту файлы лицензии лежат рядом со скриптом, в противном случае указываем абсолютные пути или пути относительно скрипта к файлам лицензии.
!include "MUI2.nsh"

Name "BigLicense-Test"
OutFile "biglictest.exe"


!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_SHOW "CustomLicensePagePre" ; функция перед страничкой лицензии
!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\COPYING" ;здесь ничего не менять!!!
!insertmacro MUI_PAGE_INSTFILES

!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Russian"

Function .onInit

!insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd


Function CustomLicensePagePre
InitPluginsDir
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $0 $0 1000

${If} $LANGUAGE == ${LANG_ENGLISH}
File "/oname=$PLUGINSDIR\license.txt" "english.txt"
${ElseIf} $LANGUAGE == ${LANG_RUSSIAN}
File "/oname=$PLUGINSDIR\license.txt" "russian.txt"
${EndIf}

CustomLicense::LoadFile "$PLUGINSDIR\license.txt" $0
FunctionEnd

Section
SectionEnd

aVitaliy
24-08-2013, 01:57
У инсталятора есть дополнительно к тихому режиму (ключ /S) еще сделать выбор русского языка из списка при тихой инсталяции. Получается сначала нужно выбрать язык, потом программа устанавливается в тихом режиме, софтина - Raidcall ? Пробовал с ключом /1049 - не срабатывает, окно выбора языка появляется.

K.A.V.
24-08-2013, 11:52
Да блин, я уже все что можно перепробовал, не работает эта команда, как впрочем и многие другие в попытке изменить файл... »
Плохо пробовали, раз не работает ;)

Держите готовый код, самый простой способ с файлом лицензии, в зависимости от языка

kotkovets
24-08-2013, 13:18
окно выбора языка появляется »
через флаг тихого режима скрываем
Function .onInit
IfSilent done
!insertmacro MUI_LANGDLL_DISPLAY
done:



FunctionEnd
Пробовал с ключом /1049 - не срабатывает»
id языка хранится в переменнной $LANGUAGE
http://forum.oszone.net/post-2205311-469.html
Значит можно принудительно менять язык установщика через ключи:
http://forum.oszone.net/post-2204336-465.html

Function .onInit
IfSilent done
!insertmacro MUI_LANGDLL_DISPLAY
done:

ClearErrors
${GetOptions} "$CMDLINE" "/1049" $R0
${IfNot} ${Errors}

IfSilent 0 +2
StrCpy $LANGUAGE 1049

${EndIf}
FunctionEnd

А вообще установщик по умолчанию автоматом выбирает язык в зависимости от "язычности" установленной Windows..

aVitaliy
24-08-2013, 18:27
kotkovets,
я не пытаюсь сделать свой установщик, есть готовая программа - Raidcall, мне просто нужно, чтобы на клиентских компах по сети она устанавливалась в скрытом режиме без окон о выборе каких-то действий. Она при запуске с ключом /S выдает запрос какой язык использовать. Мне нужно, что бы вообще ни чего не спрашивала, а сразу установила русскую версию.

kotkovets
24-08-2013, 22:33
Мне нужно, что бы вообще ни чего не спрашивала, а сразу установила русскую версию »
тогда никак, почему появляется окно я показал выше...

MaGoth
25-08-2013, 04:45
kotkovets,
Все работает, качаем для удобства плагин: »
В оригинале от автора не работает...


K.A.V.,
Плохо пробовали, раз не работает
Держите готовый код, самый простой способ с файлом лицензии, в зависимости от языка »
Хорошо пробовал, ваш пример также не прошел с моим скриптом.

Но немного изменив код, удалив ненужные строки получилось его скомпилировать... :)

K.A.V.
25-08-2013, 06:57
Хорошо пробовал, ваш пример также не прошел с моим скриптом.
Но немного изменив код, удалив ненужные строки получилось его скомпилировать... »
Простите...Что? :o
Хотите сказать, мой код у вас не компилировался и файлы лицензии не показывались в зависимости от языка?

Если вы пытались накидать содержимое моего примера в свой скрипт, и при этом у вас не сработало, значит ошибка с вашей стороны
Я дал вам готовый, полностью рабочий код, могу дать и откомпилированную версию для примера




© OSzone.net 2001-2012