Ru-Board.club
← Вернуться в раздел «Программы»

» NSIS (Nullsoft Scriptable Install System)

Автор: Victor_VG
Дата сообщения: 12.12.2013 21:45
Pegalet

Я с этим и возится не стану - достали рекламой. В моих сборках сего бреда нет, не было и не будет.
Автор: MKN
Дата сообщения: 13.12.2013 09:16
Pegalet

Цитата:
1. Как заставить открывать новую страницу не в internen explorer, а в браузере, установленный по умолчанию в системе юзера?

Сначала определить браузер по умолчанию. Примеров в сети много.

Цитата:
2. Как поменять размеры всплывающего окна, вызываемым ShowWebInPopUp?

Лучше создать собственное окно и поместить в него открывающуюся страницу браузера. Примеры есть в сети.
Автор: AlekseyPopovv
Дата сообщения: 02.01.2014 17:33
Подскажите как в NSIS сделать, что бы исполняемый файл .exe запускался от имени администратора?
Автор: Victor_VG
Дата сообщения: 02.01.2014 18:33
AlekseyPopovv

Самое надёжное через плагины проверить права и если надо запустить фоновый процесс. Самому это нужно для пары проектов - после праздников сяду писать а сейчас нет времени основательно кодом заниматься.
Автор: AlekseyPopovv
Дата сообщения: 02.01.2014 19:04
То есть если что то дописать вот здесь:
ExecWait "$EXEDIR\${APPDIR}\${APPEXE}"
то всё равно ни чего не получится?
Автор: Victor_VG
Дата сообщения: 02.01.2014 20:32
AlekseyPopovv

Я иначе хочу сделать и добавить нужную процедуру в свою библиотеку ProcLib. Пока у меня только общие намётки, а посему нужно повозится. Ну а задумку показывать ещё просто рано. Потому и сказа что нужно подумать. Не терплю халтуру.
Автор: AlekseyPopovv
Дата сообщения: 02.01.2014 20:40
Я уже разобрался. Я имел в виду вот это:
RequestExecutionLevel admin
Автор: Victor_VG
Дата сообщения: 02.01.2014 20:41
AlekseyPopovv

Реально этого мало, частенько не срабатывает и потому я хочу иначе сделать.
Автор: Sanch8
Дата сообщения: 16.01.2014 06:49
NSIS v3.0a2

------------------------------------

Р у с с к а я ... в е р с и я


Автор: Victor_VG
Дата сообщения: 16.01.2014 17:28
Sanch8

Это понимать как рекламу вашего ресурса?

Цитата:
Оригинальная версия программы: [Ссылки могут видеть только зарегистрированные пользователи]

Русификатор для версии 3.0a2: Доступно только для пользователей

Исходный код версии 3.0a2 (RUS): Доступно только для пользователей

Cобственная сборка NSIS v3.0a2 (RUS): Доступно только для пользователей

хотите чтобы пользовались все - выложите на публичный обменник, а нет - нечего устраивать из тему рекламную площадку.
Автор: Sanch8
Дата сообщения: 16.01.2014 17:53
Victor_VG
С этим ресурсом не имею никаких делов, просто выложил ссылку
на сайт откуда можно скачать данную версию, а регистрация
минутное дело.
Автор: Victor_VG
Дата сообщения: 16.01.2014 18:15
Sanch8

Тогда это реклама с вашей стороны.
Автор: Sanch8
Дата сообщения: 16.01.2014 18:56
Victor_VG
Реклама может быть чайников или самоваров, а здесь просто
ссылка на которую я также зашёл, зарегался и скачал то что мне
нужно.
P.S. Для тех кому лень регистрироватся:
Оригинальная версия программы: скачать
Русификатор для версии 3.0a2: скачать
Исходный код версии 3.0a2 (RUS): скачать
Cобственная сборка NSIS v3.0a2 (RUS): скачать
Автор: Victor_VG
Дата сообщения: 16.01.2014 20:24
Sanch8

Цитата:
Реклама может быть чайников или самоваров, а здесь просто
ссылка на которую я также зашёл, зарегался и скачал то что мне
нужно.


Цитата:
P.S. Для тех кому лень регистрироватся:

1) - в данном случае это уже не реклама, а не прикрытое хамство.
2) - на форуме принято что ссылки не прячут за просьбой зарегистрироваться:
3) регистрироватся
- вам Букварь подарить или сами грамматические ошибки исправите?
4) - красным цветом обычно пишет Администрация, а все остальные стараются его избегать.
Автор: Sanch8
Дата сообщения: 17.01.2014 09:51
Victor_VG
К чему все эти придирки ???
1) Хамства здесь никакого не вижу.
2) Прежде чем учить грамматике людей, сперва исправьте свои ошибки в шапке, где подпись и точка две разные строки, и слово не прикрытое пишется вместе.
3) Выделенный цвет текста не запрещён форумом, красный он или белый (Хотя у кого-то может быть неадекватная реакция на цвет).


Автор: Victor_VG
Дата сообщения: 17.01.2014 11:39
Sanch8

Шапку и без меня правят - смотрите чья подпись стоит внизу как редактора, а с остальным - вам самому не смешно?
Автор: Sanch8
Дата сообщения: 17.01.2014 12:49
Victor_VG
Ну вот и посмеялись...

Цитата:
Букварь подарить
красным цветом обычно пишет Администрация
Автор: Victor_VG
Дата сообщения: 15.03.2014 06:26
Небольшой подарок на местном трекере - пакет разработки на основе NSIS 2.46 STABLE. Я считаю что пока пользоваться версией 3.х ещё рановато, а там всё что можно было обновить обновлено - переписано. Одного баг-репорта по милости GetVersion() мне вполне хватило чтобы переписать пакет обновления.
Автор: MKN
Дата сообщения: 15.03.2014 08:26
Victor_VG
Выложи здесь пожалуйста отдельно переписанную GetVersion.dll.
Автор: Victor_VG
Дата сообщения: 15.03.2014 12:04
MKN

Я брал её здесь, но толку на 8.1 не было - код:

Цитата:
Function .onInit
...
GetVersion::WindowsVersion
Pop $R2
StrCpy $R3 $R2 1
StrCpy $R4 $R2 1 -1
StrCpy $R3 $R3$R4
IntCmp $R3 51 +2 +1 +2
Call unsuppm
...

вместо перехода дальше получает на стеке мусор и зовёт сообщение об ошибке оформленное как внешняя функция. Посему я иначе решил задачу:

Цитата:
....
!include "WinVer.nsh"
....
Function .onInit
....
${If} ${AtLeastWinXP}
${OrIf} ${AtLeastWin2003}
Goto onext
${Else}
Call unsuppm
${EndIf}
onext:
...

но, для этого надо поменять WinVer.nsh взяв его по ссылке - он позволяет используя LogicLib сделать нужную проверку с учётом изменений в WinAPI.
Автор: MKN
Дата сообщения: 15.03.2014 13:42
Victor_VG

Цитата:
Я брал её здесь, но толку на 8.1 не было

Тогда понятно... Единственным нормальным рабочим для W8.1 - остаётся WinVer2.nsh от kotkovets
Ну, и получение правильной версии с помощью WMI (при использовании WMI.nsh )
Автор: Victor_VG
Дата сообщения: 15.03.2014 15:14
MKN

Да, поскольку нам достаточно посмотреть на MSDN GetVersio() и GetVersionEx() - начиная с Win8 вместо них в WinAPI отвечают заглушки.

Цитата:
Единственным нормальным рабочим для W8.1 - остаётся WinVer2.nsh от kotkovets

с Oszone.net откуда я вечно любуюсь только 504-й.
Автор: Victor_VG
Дата сообщения: 16.03.2014 02:06
MKN

А хочешь проще?

Цитата:
!include 'StdUtils.nsh'
OutFile test.exe
RequestExecutionLevel user
ShowInstDetails show
Section
    ${StdUtils.GetRealOSVersion} $1 $2
    DetailPrint "Real Windows NT Version: $1,$2"
    DetailPrint ""
SectionEnd
Section
    ${StdUtils.VerifyOSVersion} $1 5 0
DetailPrint "Check for Windows 2000: $1"
    ${StdUtils.VerifyOSVersion} $1 5 1
DetailPrint "Check for Windows XP: $1"
    ${StdUtils.VerifyOSVersion} $1 5 2
DetailPrint "Check for Windows 2003: $1"
    ${StdUtils.VerifyOSVersion} $1 6 0
    DetailPrint "Check for Windows Vista: $1"
    ${StdUtils.VerifyOSVersion} $1 6 1
    DetailPrint "Check for Windows 7: $1"
    ${StdUtils.VerifyOSVersion} $1 6 2
    DetailPrint "Check for Windows 8.0: $1"
    ${StdUtils.VerifyOSVersion} $1 6 3
    DetailPrint "Check for Windows 8.1: $1"
    ${StdUtils.VerifyOSVersion} $1 6 4
    DetailPrint "Check for Windows 8.2: $1"
SectionEnd

а главное оно напрямую работает c рунтаймими С и решает задачу проще и надёжнее чем предложенный тобой метод - три простых строки кода и мы знаем, что программа запущена в условиях которые нас устраивают. И чего тогда голову ломать с WMI или современной реализацией DOS команды setver?
Автор: MKN
Дата сообщения: 16.03.2014 09:47
Victor_VG

Цитата:
А хочешь проще?

Это я видел на винампе. LoRd_MuldeR позавчера даже что то обновил. Только и там не всё так однозначо (в плане перспективы детекта новых последующих версий). Аж целая дискуссия в двух темах была...

И в плане простоты кроме трёх строк кода - нужен хедер и плагин.
А при использовании WMI - три строки кода и хедер. Я не утверждаю , что так лучше, но предполагаю, что надёжнее...
Автор: Victor_VG
Дата сообщения: 16.03.2014 17:36
MKN

Ну, плагин тут вещь нужная - идёт обращение к MSVCRT, т.е. к рунтайму C++. По крайней мере в моём случае это решение явно сработало - баг-репортов нет, зато есть предложения по развитию проекта. Значит сборка на 8.1 встала и сообщений об ошибке детектора более нет. А дальше можно спокойно работать. С WMI связываться бесполезно - согласно MSDN возможностями запроса версии ОС он не располагает ибо это функции рунтаймов MS Visual Studio, а их проще через C Standard Library позвать.
Автор: Victor_VG
Дата сообщения: 16.03.2014 23:09
Я обновил свой комплект средств разработки для NSIS 2.46 Stable (ANSI) - в Update обновлён StdUtils, а HM NIS включает в себя UPX 3.0.9.1. Мои исходники модификаций открыты под лицензией GPL 2.1 и включены в пакеты. Пользуйтесь.

P.S.

Файлы блокирует служба ЯД, посему им отправлено письмо:

Цитата:
Господа, ваша мухобойка блокирует под разными предлогами безобидные файлы. Вот её очередной "подвиг" - http://yadi.sk/d/vFEHuN1AKkvSK . Мне плевать на идиота которые её писал, но она гавкает на код где нет заразы - возьмите SDK обновления и там мои исходники. Или это надо понимать как факт что кому-то и на это охота лапу наложить? А губозакатальную машинку сему господину из Лондону-Парижу не выписать?

Реакции от сих господ нет...
Автор: Dunkeshu
Дата сообщения: 23.03.2014 16:02
Victor_VG
Цитата:
Файлы блокирует служба ЯД, посему им отправлено письмо
Возможно причина заключается в файле из архива - Installing the Microsoft .NET Framework.chm (он не открывается). Или это следствие? Киньте архив на другой файлообменник. Делов то!
Автор: Victor_VG
Дата сообщения: 23.03.2014 17:02
Dunkeshu

Там были побитые до архивирования файлы - на старой флешке чипы посыпались, но они бы просто не запустились, да и система сообщила бы об ошибке, а тут что за причина они молчат как партизаны несмотря на неоднократные вопросы. Ну и ладно, битые файлы я убрал, Rar архивы перепаковал и кинул архив на другой обменник NSIS246.7z (7-Zip v9.30 Alpha, LZMA, SOLID, MAXIMUM). Сколько там пролежит не знаю, у меня бы лежал долго.

Реальная же причина называется просто - Ни себе, ни людям! Расчистим поляну! - платные мухобойки подымают вой по принципу "Потенциально нежелательное приложение! Место забито коммерсантами, Open Source курит в сторонке!".
Автор: betssaf
Дата сообщения: 23.03.2014 17:13
Кто может накидать заготовку проета для следующей задачи:
Имеется архив с файлами, иконка, бантик, тхт с настр для sfx.
На выходе ехе должен обработать то что прописано в тхт! Хочу некоторые прожки портабле собирать в нсис. Сейчас некоторые делаю кнопкой, но она не все может к сожалению. Прога отличная! Заранее благодарю за инфу.
Автор: Victor_VG
Дата сообщения: 23.03.2014 17:39
betssaf

Ну, как вариант - алгоритм (общий!): если программа пишет настройки в Реестр, то бэкапим их через Registry::Save, меняем на заготовленные, запускаем программу через ExecWait и ждём её завершения. По завершению чистим за ней мусор и восстанавливаем порушенное. Я так запускал Far1 - Far3, и вроде ничего. Размер запускалки порядка 60 Кб, а SourceForge.net/PortableApps/ .PAF без учёта встроенных исходников и справки порядка 1 Мб, но с ней возни меньше - практически поправить несколько строк в INI, а своя будет сложнее в коде, но компактнее.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

Предыдущая тема: The Bat!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.