Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.
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% »
в справке или где то ещё я не нашел
след вопрос
можно ли сделать чтобы при обычном запуске инстала файл не распаковывался, а при запуске с ключом распаковался?
а вот как
Цитата 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))
Привет народ,
Подскажите плиз, номера кодовых страниц для этих языков:
${LANG_ENGLISH}
${LANG_ROMANIAN}
${LANG_GERMAN}
${LANG_RUSSIAN}
${LANG_ITALIAN}
${LANG_CZECH}
${LANG_POLISH}
${LANG_SPANISH}
Используемых в Нсис, Гулельме какую-то шляпу выдает. Для русской, у него туча раскладок, номера которой все разнятся... Моя в печали..
Привет народ,
Подскажите плиз, номера кодовых страниц для этих языков:
${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
Оно?
K.A.V.,
Сейчас буду смотреть оно или нет, ибо в ютф не все так однозначно.
И как я про ланги забыл... )))
Зы, Все пытаюсь прикрутить текстовуху лиценза на разных лангах, и все никак. Все прочие работают нормально, а эта зараза...
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"
...
Мысли есть какие на этот счет ?!
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)
Да блин, я уже все что можно перепробовал, не работает эта команда, как впрочем и многие другие в попытке изменить файл... :(
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 - не срабатывает, окно выбора языка появляется.
Да блин, я уже все что можно перепробовал, не работает эта команда, как впрочем и многие другие в попытке изменить файл... »
Плохо пробовали, раз не работает ;)
Держите готовый код, самый простой способ с файлом лицензии, в зависимости от языка
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
Мне нужно, что бы вообще ни чего не спрашивала, а сразу установила русскую версию »
тогда никак, почему появляется окно я показал выше...
kotkovets,
Все работает, качаем для удобства плагин: »
В оригинале от автора не работает...
K.A.V.,
Плохо пробовали, раз не работает
Держите готовый код, самый простой способ с файлом лицензии, в зависимости от языка »
Хорошо пробовал, ваш пример также не прошел с моим скриптом.
Но немного изменив код, удалив ненужные строки получилось его скомпилировать... :)
Хорошо пробовал, ваш пример также не прошел с моим скриптом.
Но немного изменив код, удалив ненужные строки получилось его скомпилировать... »
Простите...Что? :o
Хотите сказать, мой код у вас не компилировался и файлы лицензии не показывались в зависимости от языка?
Если вы пытались накидать содержимое моего примера в свой скрипт, и при этом у вас не сработало, значит ошибка с вашей стороны
Я дал вам готовый, полностью рабочий код, могу дать и откомпилированную версию для примера
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC