Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.
inco1, Разумнее всего будет забыть про выравнивание по центру в MessageBox.
inco1,
Плагин(одну из вариаций самопальной messagebox.dll) однажды встречал у китайцев (на nsisfans.com). Где он там закопан, ищи уж сам.
Есть еще интересная малюсенькая прожка Wbox.exe (www.horstmuc.de ). В ней точно есть центровка текста и много чего ещё. Теоретически можно приспособить в NSIS, если разобраться как приладить Callback... Но, ИМХО, в такой возне, смысла нет...
Спасибо сообществу за замечательный хелпер без него как без рук уже (он у меня работает не корректно и не отображает содержимое страниц. Приходится доставать оттуда нужные html ручками хз почему »
Возможно, система заблокировала CHM файл, т.к. он был загружен из интернета, зайдите в свойства файла и нажмите кнопку (или поставьте галочку) "Разблокировать"
MKN, по данной ссылке некий DrO в 2005 году писал, что, когда закончит с почтовым плагином, то займется этим.
Дайте, пожалуйста ссылку этого самого спец плагина. »
Так вроде и сделали...Только насколько я понял, там нет функции центровки текста, там все стили стандартные от системы
Может быть, были более свежие версии, но у меня на диске сохранилась только эта, ибо много чего качал, когда начинал знакомство с NSIS...
Что касается решения вопроса, то MKN выше уже вам дал ответ:
Если так сильно нужна центровка текста, то делайте свою DLL и в ней создавайте свой диалог через WinApi функцию DialogBox с использованием заранее созданного ресурса с окном, присвоив стиль SS_CENTER Static-элементу, в котором будет располагаться непосредственно текст вашего сообщения
Всем добрый вечер.
Вот опять застрял в одном деле.
Имеется известная служба "AdobeARMservice". Подскажите, пожалуйста, как можно изменить тип запуска с "Автоматически" на "Вручную" ?
inco1, sc config SERVICE_NAME start= demand (https://ab57.ru/cmdlist/sc.html) через nsexec
iglezz, Спасибо. Это именно то, что нужно.
Привет. Подскажите, пожалуйста, как модифицировать данный код, чтобы кроме 1920*1080 добавить второе возможное разрешение по принципу: если у пользователя разрешение 1920*1080 или 1366*768, то продолжаем установку, если любое другое - аборт.
Не получается сопоставить логическую конструкцию.
Function .onInit
; Получаем текущие размеры экрана
System::Call 'user32::GetSystemMetrics(i 0) i .r0' ; Ширина в пикселях
System::Call 'user32::GetSystemMetrics(i 1) i .r1' ; Высота в пикселях
${If} $0 == 1920
${AndIf} $1 == 1080
MessageBox MB_OK "Установлено разрешение 1920x1080"
${Else}
MessageBox MB_OK "Установлено любое другое разрешение"
${EndIf}
FunctionEnd
Serg866, Например, так:System::Call 'user32::GetSystemMetrics(i 0) i .r0' ; Ширина в пикселях (основного дисплея)
System::Call 'user32::GetSystemMetrics(i 1) i .r1' ; Высота в пикселях (основного дисплея)
StrCpy $2 "$0x$1" ; делаем строку "<ширина>x<высота>"
${If} $2 != "1920x1080"
${AndIf} $2 != "1366x768"
MessageBox MB_ICONSTOP "Экран не тот, работать не буду"
Quit
${EndIf}
Для получения разрешения неосновного дисплея в многодисплейных конфигурациях код будет другой.
Всем доброй ночи.
Тут вот такое дело. Смотрю в CCleaner в "Запланированные задачи", там много всякой всячины. Такой вопрос: есть ли в NSIS команды для удаления запланированных задач?
есть ли в NSIS команды для удаления запланированных задач? »
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/windows-server/administration/windows-commands/schtasks
https://www.celitel.info/klad/bathelp/schtasks.htm и т.п.
или
https://nsis.sourceforge.io/Talk:Scheduled_Tasks
или можно заморочиться с API, что не имеет смысла... :
https://nsis.sourceforge.io/mediawiki/index.php?title=Scheduled_Tasks&oldid=21526
MKN, Спасибо. Наилучшим образом работает это:
nsExec::Exec 'schtasks /Delete /tn "My Task" /f'
Здравствуйте. Такой вот вопрос. Если система неким уникумом установлена на диск D.
Будут ли в таком случае работать стандартные переменные?
Интересует $PROGRAMFILES.
inco1,
Будут.
Если система неким уникумом установлена на диск D. »
Не обязательно уникумом. По крайней мере раньше сама логика установщика Windows порождала таких кадавров
Всем доброго времени суток. Столкнулся с такой проблемой. Имеется команда "если файл не найден"
(${IfNot} ${FileExists} C:\test.exe
MessageBox MB_OK "дыр-дыр-дыр"
${EndIf}
А есть ли команда поиска нескольких файлов C:\test.exe и C:\test1.exe и C:\test2.exe и если только все отсутствуют выдать сообщение?
Begin2Fly
02-08-2020, 18:17
А есть ли команда поиска нескольких файлов C:\test.exe и C:\test1.exe и C:\test2.exe и если только все отсутствуют выдать сообщение? »
Справочник по NSIS - Статьи - Логические конструкции: ${AndIf}
Begin2Fly,
Ничего я там не понял, да и пример с ${AndIf} один единственный с равенством.
Можете дать конкретный пример?
Begin2Fly
02-08-2020, 18:35
!include Logiclib.nsh
${IfNot} ${FileExists} C:\test.exe
${AndIfNot} ${FileExists} C:\test1.exe
${AndIfNot} ${FileExists} C:\test2.exe
MessageBox MB_OK "дыр-дыр-дыр"
${EndIf}
Begin2Fly,
Спасибо, ну я и лошара.
Кто подскажет в чем причина?
То, что крокозябрами должно быть Русским. Может кто сталкивался.
https://b.radikal.ru/b09/2008/ce/0b3bacaf5c15.png
PS: Вопрос снят, решение найдено.
System::Call 'user32::GetSystemMetrics(i 0) i .r0' ; Ширина в пикселях
System::Call 'user32::GetSystemMetrics(i 1) i .r1' ; Высота в пикселях
StrCpy $2 "$0x$1" ; делаем строку "<ширина>x<высота>"
${If} $2 != "1920x1080"
${OrIf} $2 != "1366x768"
MessageBox MB_ICONSTOP "Экран не тот, работать не буду"
Quit
${EndIf} »
Почему-то не работает, ошибку показывает, даже если экран тот.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC