.: NSIS - все вопросы :. часть 2.

Ответить
 • Просмотры: 20
Аватара пользователя
MKN

Re: .: NSIS - все вопросы :. часть 2.

Сообщение MKN »

inco1,

InstallDir "любое изменяемое бла-бла". Это "любое изменяемое бла-бла" = $INSTDIR.

$INSTDIR используй далее в скрипте, где угодно.

Давно бы проэксперементировал и увидел что и как. Изображение
Аватара пользователя
inco1

Re: .: NSIS - все вопросы :. часть 2.

Сообщение inco1 »

MKN, Спасибо. Все просто и доступно. Жаль, что создатели справки не умеют объяснять вот таким простейшим способом.
Аватара пользователя
inco1

Re: .: NSIS - все вопросы :. часть 2.

Сообщение inco1 »

Цитата NorvesBear:



Спасибо сообществу за замечательный хелпер без него как без рук уже (он у меня работает не корректно и не отображает содержимое страниц. Приходится доставать оттуда нужные html ручками хз почему
.: NSIS - все вопросы :. часть 2.




Возможно, система заблокировала CHM файл, т.к. он был загружен из интернета, зайдите в свойства файла и нажмите кнопку (или поставьте галочку) "Разблокировать"




Цитата inco1:



MKN, по данной ссылке некий DrO в 2005 году писал, что, когда закончит с почтовым плагином, то займется этим.

Дайте, пожалуйста ссылку этого самого спец плагина.
.: NSIS - все вопросы :. часть 2.




Так вроде и сделали...Только насколько я понял, там нет функции центровки текста, там все стили стандартные от системы

Может быть, были более свежие версии, но у меня на диске сохранилась только эта, ибо много чего качал, когда начинал знакомство с NSIS...



Что касается решения вопроса, то MKN выше уже вам дал ответ:

Если так сильно нужна центровка текста, то делайте свою DLL и в ней создавайте свой диалог через WinApi функцию DialogBox с использованием заранее созданного ресурса с окном, присвоив стиль SS_CENTER Static-элементу, в котором будет располагаться непосредственно текст вашего сообщения
Аватара пользователя
Begin2Fly

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Begin2Fly »

Всем добрый вечер.

Вот опять застрял в одном деле.

Имеется известная служба "AdobeARMservice". Подскажите, пожалуйста, как можно изменить тип запуска с "Автоматически" на "Вручную" ?
Аватара пользователя
inco1

Re: .: NSIS - все вопросы :. часть 2.

Сообщение inco1 »

Всем доброго времени суток.

Помогите, пожалуйста вот в каком деле.

Стоит задача. Если язык в системе русский и на диске D в папке test имеется изображение test.gif , то оно должно показаться на две секунды. С другим языком это изображение не должно показываться. Сделал такой код:



Код:

Код: Выделить всё

OutFile "Test.exe"
SilentInstall silent
SetCompressor /SOLID lzma
!include "LogicLib.nsh"
Function .onInit
System::Call "kernel32::GetUserDefaultLCID() i.r0"
IntOp $LANGUAGE $0 & 0xFFFF
IntFmt $0 "%04X" $0
FunctionEnd
Section
${If} $0 = 0419
newadvsplash::show 2000 100 100 "D:\test\test.gif"
Abort
${EndIf}
SectionEnd

Задача выполнена. Код компилируется. Экзешник создается и работает согласно поставленной задаче. Ничего криминального.

Но почему тогда 9 антивирусников пишут всякую всячину по поводу этого файла?

virustotal


Помогите, пожалуйста поправить мой код, чтобы антивирусники замолчали. Видать они что то видят неправильное в коде.
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

inco1,

Эта задача решается сугубо административными методами - обвешивание сертификатами, контакт с разрабами "антивирусов" на тему внесения своего безвредного творения в белые списки и т.п.
Аватара пользователя
iglezz

Re: .: NSIS - все вопросы :. часть 2.

Сообщение iglezz »

iglezz, С антивирусниками ясно, но думается мне, что не разрешимо. Код сгодиться? Ничего править не нужно?
Аватара пользователя
inco1

Re: .: NSIS - все вопросы :. часть 2.

Сообщение inco1 »

inco1,

Не стоит переносить данные в переменных общего значение ($0..$9, $R0..$R9) между разными блоками кода, они могут потеряться при использовании колбек-функций .onMouseOverSection, .onSelChange или плохо оформленного куска кода, который не заботится о сохранении состояния $0..$9, $R0..$R9.



Код получения системного языка по умолчанию лучше поместить в отдельную функцию/макрос (или даже вынести в свой отдельный .nsh):



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Function GetDefaultLanguageFunc
    Push $0 ; отправим $0 в стек, чтобы сохранить её состояние до вызова функции
    System::Call "kernel32::GetUserDefaultLCID() i.r0"
    IntOp $LANGUAGE $0 & 0xFFFF
    IntFmt $0 "%04X" $0
    Exch $0 ; сохранённое значение $0 из стека возвращается на место, полученный код языка помещается в стек
FunctionEnd
Section
    Call GetDefaultLanguageFunc ; вызываем функцию
    Pop $0 ; извлекаем из стека полученный функцией код языка 
    ${If} $0 = 0419
        newadvsplash::show 2000 100 100 "D:\test\test.gif"
        Abort
    ${EndIf}
SectionEnd
Аватара пользователя
inco1

Re: .: NSIS - все вопросы :. часть 2.

Сообщение inco1 »

Цитата inco1:



есть ли в NSIS команды для удаления запланированных задач?
.: NSIS - все вопросы :. часть 2.




NSIS может работать с обычными "классическими" командами, типа :



ExecWait 'SchTasks /Delete /TN “My Task”'

ExecWait 'SchTasks /Change /TN "My Task" /Disable'



http://forums.shoutcast.com/showthread.php?t=374970




https://docs.microsoft.com/ru-ru/win...mands/schtasks


https://www.celitel.info/klad/bathelp/schtasks.htm
и т.п.



или

https://nsis.sourceforge.io/Talk:Scheduled_Tasks




или можно заморочиться с API, что не имеет смысла... :

https://nsis.sourceforge.io/mediawik...ks&oldid=21526
Ответить

Вернуться в «Автоматическая установка приложений»