Подскажите инсталлятор

Sergiuz

Member
Joined
Mar 15, 2009
Messages
18
Reaction score
1
Age
41
Добрый день!

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

Никогда не работал с ними буду также рад за ссылки с описанием.

Заранее благодарен!
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Из бесплатных, например, Inno Setup.

P.S. Правда с запросом ключа не очень понятно. Если будет их база, а не один, то не уверен, что получится. Но я давно не работал с этим софтом.
 
Last edited by a moderator:

Sergiuz

Member
Joined
Mar 15, 2009
Messages
18
Reaction score
1
Age
41
Ognev, благодарю.

demav, благодарю. А в NSIS возможно сделать проверку ключа?
 

demav

Member
Joined
Nov 20, 2018
Messages
301
Reaction score
53
Age
39
А в NSIS возможно сделать проверку ключа?

Вообще там большие возможности. Например, можно сделать ввод значения (строка) средствами NSIS.

Поясните, что значит "ввод ключа", где он должен вводиться и куда передаваться.
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
demav,
как понимаю, инсталляция должна пойти, только если введен один из правильных ключей. База ключей, похоже, должна быть в самом инсталляторе. В Inno Setup есть возможность, заявленная как "Support for passworded and encrypted installs", но не знаю, поддерживается ли набор паролей. Если в NSIS есть возможность прервать установку, если строка ввода не удовлетворяет некоему условию (списку валидных ключей), то этого, думаю, достаточно.
P.S. Возможно в Inno Setup тоже есть такая возможность.

P.P.S. Глянул из интереса в справку к Inno Setup.
Пароль, который пользователь должен будет ввести в начале установки.
Используя пароль, задайте директиве Encryption значение yes, иначе файлы сохранятся как простой текст и получить к ним доступ не составит труда.
То есть пароль будет один.
P.P.P.S. Чисто мое мнение, что регистрацию лучше делать в программе, а не в инсталляторе. Человек, имеющий ключ, думаю без труда соберет из твоих файлов, ключей реестра и т.п. свой дистрибут, где ввод ключа не требуется.
 
Last edited by a moderator:

demav

Member
Joined
Nov 20, 2018
Messages
301
Reaction score
53
Age
39
Если в NSIS есть возможность прервать установку, если строка ввода не удовлетворяет некоему условию (списку валидных ключей), то этого, думаю, достаточно

Да, это есть - функция Quit. Условные переходы тоже, соответственно, есть.

Я вот InnoSetup совсем не знаю, поэтому не могу рекомендовать использовать тот или иной инсталлятор. Могу только пояснить детали по NSIS.
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
demav,
автору темы не до глупостей, а нам, простым смертным, хотелось бы завершенности. Если вам не сложно, не могли бы вы для потомков запостить здесь пример реализации под NSIS проверки введенного пользователем ключа по списку валидных (с выходом из установки, если ключ неправильный).
 

xpect

Member
Joined
Aug 9, 2010
Messages
12
Reaction score
11
Из 99% инсталяторов можно достать файлы в один клик Ctrl+PgDown правильно настроенным тоталом или фаром (в их числе InnoSetup и NSIS). Наилучшая реализация защиты это установка триала и реализация защиты в самой программе. Другой вариант это написание собственного инсталятора. Если наворотов особых нет то можно сделать инсталятор RARом, пароли подбирать к нему довольно долгое занятие.
http://eclipsensis.sourceforge.net/index.shtml - удобно писать скрипты NSIS.
 

demav

Member
Joined
Nov 20, 2018
Messages
301
Reaction score
53
Age
39
запостить здесь пример реализации под NSIS проверки введенного пользователем ключа

Вот такой код, например:

Code:
!include "MUI.nsh"
!include "nsDialogs.nsh"
SetCompress off

!insertmacro MUI_PAGE_WELCOME
Page custom fnCustomInit fnCustomDestroy
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Russian"

Name "CheckTest"
OutFile "CheckTest.exe"
ShowInstDetails show

Var Dialog
Var Text 
Var Label

Function fnCustomInit
    nsDialogs::Create 1018
    Pop $Dialog
    
    ${NSD_CreateLabel} 0 5u 100u 10u "Введите серийный номер"
    Pop $Label 

    ${NSD_CreateText} 0 20u 100% 15u ""
    Pop $Text
        
    nsDialogs::Show
FunctionEnd

Function fnCustomDestroy
    ${NSD_GetText} $Text $R0
	StrCmp $R0 "12345" +3 0
    MessageBox MB_OK "Серийный номер введен неверно"
	Quit
FunctionEnd

Section
    DetailPrint "Hello from CheckTest"
    SetAutoClose false
SectionEnd

Если ввели неверный серийный номер "12345", то производится вывод сообщения и выход. Если код верный, то инсталляция продолжается.

В примере важен принцип. Синтаксис языка NSIS, конечно, не C++ :), но сделать можно почти все, наверное.
 

vvvboss

Member
Joined
Feb 17, 2009
Messages
20
Reaction score
0
Из 99% инсталяторов можно достать файлы в один клик Ctrl+PgDown правильно настроенным тоталом или фаром ....

Можно и комбинировать - контент упакован к примеру раром с паролем и с помощью скрипта nsis или inno (в случае корректного ввода пароля юзером) разворачивать в фоновом режиме с подстановкой пароля...
 
Top