Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.
AlekseyPopovv
07-04-2020, 10:19
При Unicode true ругается на !include "ProcessFunc.nsh".
Как быть? NSIS 3.04
При Unicode true ругается на !include "ProcessFunc.nsh". »
Как именно?
AlekseyPopovv
07-04-2020, 10:48
Как именно? »
Command line:
"C:\Program Files (x86)\NSIS\makensis.exe" /NOTIFYHWND 6882462 "P:\Portable\Scripts\Program.nsi.hmnetempscript1"
Processing config: C:\Program Files (x86)\NSIS\nsisconf.nsh
Processing script file: "P:\Portable\Scripts\Program.nsi.hmnetempscript1" (ACP)
Bad text encoding: C:\Program Files (x86)\NSIS\Include\ProcessFunc.nsh:1
!include: error in script: "C:\Program Files (x86)\NSIS\Include\ProcessFunc.nsh" on line 1
Error in script "P:\Portable\Scripts\Program.nsi.hmnetempscript1" on line 52 -- aborting creation process
Не верная кодировка текста. У меня кодировка "Windows 1251".
Определённо, надо или править кодировку скрипта/включаемого файла, или указать её в !include через /CHARSET=***, или методом комментирования/удаления искать сбойные строки в ProcessFunc.nsh.
AlekseyPopovv
07-04-2020, 11:21
iglezz, не понял конечно ни чего, всё желание уже отбила "эта" программа, теперь даже морочиться с ней не буду. А вам спасибо за помощь.
При Unicode true ругается на !include "ProcessFunc.nsh". »
А какой именно Header ты используешь ? Есть старый и поновее от kotkovets - http://forum.oszone.net/post-2390157-1283.html
AlekseyPopovv
08-04-2020, 08:32
А какой именно Header ты используешь?»
Поновее. На версии 3.05 вообще теперь предупреждение, что это?
warning: 7998: ANSI targets are deprecated
На версии 3.05 вообще теперь предупреждение, что это? »
Это заявленное - переходите на Unicode, что то в Вашем скрипте не поддерживается новой версией... : https://nsis.sourceforge.io/Docs/AppendixF.html#v3.05
F.2 3.05
Released on December 15th, 2019
F.2.1 Release Notes
ANSI targets are deprecated, consider moving to Unicode.
В ряде случаев можно игнорировать или использовать предыдущие версии NSIS...
Привет
Файлы моего инсталлятора в сумме превысили размер 2гб. Соответственно скрипт не компилируется. Ищу решение по архивации файлов, чтобы архивы распаковывались при установке, при этом незаметно для пользователя и без наличия дополнительных программ на его ПК. Всё должен сделать установщик. Понимаю, что тут нужен архиватор, умеющий распаковывать архивы в тихом режиме и его надо включать в дистрибутив инсталлятора. Пожалуйста, подскажите как решить вопрос.
P.S. Надо обойтись без bat-ников, так как у многих пользователей они не запустятся из-за включенного UAC.
Примерно так:InitPluginsDir
File "/oname=$PLUGINSDIR\7za.exe" "7za.exe"
nsExec::Exec '"$PLUGINSDIR\7za.exe" x -y -o"$INSTDIR" "$EXEDIR\pack.7z"'
AlekseyPopovv
22-04-2020, 16:49
Программа запускается через лаунчер командой:
ExecWait "$EXEDIR\${APPEXE}"
Вопрос:
Как завершить процесс "${APPEXE}", если эта программа на закрывается по нажатию на "крестик", а сворачивается в трей?
А какой именно Header ты используешь ? »
Как ни странно, проблема была в закоментированном тексте в самом файле "ProcessFunc.nsh".
Программа запускается через лаунчер командой:
ExecWait "$EXEDIR\${APPEXE}"
Вопрос:
Как завершить процесс "${APPEXE}", если эта программа на закрывается по нажатию на "крестик", а сворачивается в трей? »
Для начала определится по каким критериям программу нужно закрывать.
В любом случае, если это делать из лаунчера, надо процесс запускать не через ExecWait, т.к. здесь лаунчер будет ждать завершения ${APPEXE} для перехода к следующей инструкции.
Всем доброго времени суток.
Подскажите по нубовскому вопросу. Например пишу запустить файл
Exec '"$TEMP\Br Pr\Prrr.exe"'
или не запустить, а провести другие манипуляции с файлом.
'Как сделать код с таким условием, "если файл найден, то запустить файл (или например не запускать, а провести с ним другие действия), а если не найден, то вообще пропустить выполнение этого действия" ?
"если файл найден, то запустить файл (или например не запускать, а провести с ним другие действия), а если не найден, то вообще пропустить выполнение этого действия" »
Как вариант :
IfFileExists "$TEMP\Br Pr\Prrr.exe" Next
MessageBox MB_OK "Файл Prrr.exe НЕ ОБНАРУЖЕН ! "
; Quit если надо...
Next:
MessageBox MB_OK "Файл Prrr.exe - на месте! Производим (или нет)какое либо действие"
MKN,
Спасибо, но MessageBox MB_OK не нужен, как в таком случае?
PS. Все, разобрался, еще раз спасибо.
Всем доброго времени суток.
Помогите, пожалуйста с реестром. Как привязать реестр к папке установки, ведь некоторые данные указывают в реестре папку установки, ну чтобы не тупо прописать данные, а чтобы они менялись в зависимости от места установки. Как это делается?
Как привязать реестр к папке установки, ведь некоторые данные указывают в реестре папку установки »
Папка установки, которую ессно можно изменять при установке, задаётся в скрипте.
Например, InstallDir "$PROGRAMFILES\MyProg".
Это - переменная $INSTDIR, которая фигурирует в скрипте, в частности в реестре.
К примеру, WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninstall MyProg.exe"
Собственно всё... :) Внимательно читаем "Справочник по NSIS" (ссылка в шапке темы).
MKN, Я правильно понял?, что если у меня, например,
InstallDir "$PROGRAMFILES\MyProg" ,
но пользователь во время установки изменит по своему выбору , например, в
D:\Misha\MyProg
и я пропишу:
WriteRegStr HKEY_CURRENT_USER "Software\MyProg" "123" "$INSTDIR\MyProg.exe" ,
то и в реестре пропишется все правильно:
[HKEY_CURRENT_USER\Software\MyProg]
"123"="D:\Misha\MyProg\MyProg.exe"
В справке ничего по моему вопросу не обнаружил.
inco1,
InstallDir "любое изменяемое бла-бла". Это "любое изменяемое бла-бла" = $INSTDIR.
$INSTDIR используй далее в скрипте, где угодно.
Давно бы проэксперементировал и увидел что и как. :)
MKN, Спасибо. Все просто и доступно. Жаль, что создатели справки не умеют объяснять вот таким простейшим способом.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.