Как установить 14-дневный пробный лимит в моем приложении Delphi - PullRequest
12 голосов
/ 10 ноября 2008

Я хочу добавить 14-дневную пробную версию для моего программного обеспечения. Программа была написана на Delphi 7.

Любая помощь будет высоко ценится.

Ответы [ 11 ]

13 голосов
/ 10 ноября 2008

Вы можете попробовать Turbopower OnGuard. Это теперь с открытым исходным кодом.

http://sourceforge.net/projects/tponguard/

8 голосов
/ 10 ноября 2008

Есть несколько приемов, которые вы можете использовать, но ни один из них не спасет 100%.

  • Вы можете использовать какой-то механизм лицензирования.
  • Вы можете сохранить время установки где-нибудь в реестре.
  • Вы можете сохранить время установки в файле (возможно, в исполняемом файле или DLL).
  • Вы можете сохранить IP-адрес в центральной базе данных и каждый раз проверять, прошло ли 14 дней (для этого вам необходимо подключение к Интернету).
  • Вы можете динамически создать файл (например, dll) на вашем сервере, и программа установки получит этот файл. (Обязательно запишите IP-адрес, чтобы вторая попытка была невозможна).

Но я думаю, что лучший способ - предоставить пробные версии с ограниченным функционалом. Например: нельзя печатать, сохранять проект или сохранять только небольшие проекты.

Таким образом вы избежите хлопот, и возможные клиенты могут потратить время на оценку вашего проекта.

РЕДАКТИРОВАТЬ: Если вы создаете механизм для проверки откатывать часы назад. Обязательно создайте поле, иначе программа будет заблокирована, если вы вернетесь в другой часовой пояс. Или верните часы в зимнее время. Я думаю, что запас в 25 часов покроет все. (И чтобы быть на стороне сохранения, вы можете установить предел, иначе пользователь может откатывать время каждый день.).

Но лучший способ продолжать оплачивать клиентов - это оказывать хорошую поддержку. Я прекращаю продукты, если сервис плохой.

2 голосов
/ 10 ноября 2008

Возможно, вы захотите прочитать эту страницу . Это немного старая, но умная информация о защите вашей программы, как и почему.

1 голос
/ 10 ноября 2008

Я использовал Armadillo, Asprotect и Winlicense. И у Armadillo, и у Asprotect были серьезные проблемы, такие как то, что некоторые AV считались вирусами / троянами, проблемы несовместимости и т. Д.

Я не использовал Winlicense достаточно, чтобы иметь много мнений, но поддержка довольно хорошая.

Очевидно, что оба являются более полными решениями, чем то, что вы просите - они включают защиту, лицензирование, ключи и т. Д.

Как уже упоминалось другими, иногда ограничение функции или добавление водяного знака является лучшим вариантом. Я добавил водяной знак в одну из своих программ (STGThumb) , и продажи выросли примерно на 400% ...

1 голос
/ 10 ноября 2008

что-то, что нужно знать при выполнении любой из этих проверок. Эта дата никогда не бывает БОЛЬШЕ чем 14 дней с даты, которую вы указали в любом направлении. Распространенным методом для большинства этих типов ограничений является установка даты на несколько лет вперед, установка и запуск программного обеспечения, а затем установка даты на текущее время. Если вы жестко закодированы, чтобы умереть 14 дней от первоначальной даты начала, то у пользователя есть несколько лет, чтобы попробовать ваше программное обеспечение. Проверка другого направления также дает пользователю максимум 28 дней.

1 голос
/ 10 ноября 2008

Подобный вопрос вы можете найти здесь .

В общем, я считаю, что ограничение по времени гораздо полезнее, чем ограничение по функциональности. Как я объяснил в комментарии к Gamecat post

1 голос
/ 10 ноября 2008

Одна из вещей, от которой вам нужно защититься с ограниченным по времени приложением, - это то, что пользователи откатывают свой календарь назад, чтобы приложение продолжало работать. Одним из способов решения этой проблемы является сохранение в вашем скрытом месте реестра (или где бы то ни было) отметки времени при каждом запуске приложения. Если текущая дата / время когда-либо раньше, чем последняя отметка времени, записанная вашим приложением, это означает, что пользователь откатил календарь назад, и вам следует отключить приложение.

Ограничение времени - настоящая боль, как для программиста, так и для пользователя. Это также не очень хорошая маркетинговая идея: зачем заниматься распространением рекламных материалов (какова ваша пробная версия), срок действия которых истекает? Это было бы похоже на рассылку рекламы на бумаге, предназначенной для распада через две недели.

Если ваша пробная версия функционально повреждена, вы все равно можете получить продажи даже через месяцы или годы.

0 голосов
/ 20 марта 2018

Лучше всего будет получить регистрационную информацию с вашего сервера. Большой недостаток: 1. Сервер должен быть ВСЕГДА онлайн! 2. Пользователь должен быть подключен к Интернету (когда он использует ваше приложение).

Для начала вы можете использовать библиотеку управления лицензиями Delphi , чтобы помочь вам зашифровать информацию о лицензии и сгенерировать строковый ключ, который вы можете отправить своим клиентам при регистрации. Библиотек там совсем немного.

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

И не переусердствуйте! Не существует такой вещи, как небьющаяся защита программного обеспечения. Если Microsoft не может сделать это, вы не будете делать это. Сконцентрируйтесь на добавлении приятных функций в свое приложение вместо создания системы пуленепробиваемой защиты (что невозможно).

0 голосов
/ 19 января 2011

Я создал свой собственный генератор ключей (отдельная программа для создания ключей). Значения ключей хранятся в двоичном файле с тем же именем, что и у моей программы, только с другим ext. Пример: myprogram.key

Я храню:
Имя
E-mail
RegType (REG, TRIAL)
RegDate
FirstRun (0 ИЛИ 1)

Программа ищет файл. Если его там нет, он выдает сообщение пользователю и закрывается. Генератор файлов ключей записывает значения в зашифрованные строки, которые затем записываются с использованием встроенных потоковых подпрограмм.

Я создаю ПРОБНЫЙ Ключ, который я распространяю вместе с программой. Если кто-то регистрируется, я создаю им официальный ключ REG.

В любом случае, если они запускают мою программу, она сначала ищет файл ключа. если он найден, он проверяет тип reg, если он является зарегистрированной версией, то программа загружается, и отображается информация о регистрации. Я также храню регдат, который я сравниваю со днем ​​запуска программы и - если регдат больше или равен текущей дате, пользователь получает запрос на перерегистрацию.

Если он обнаружит, что в файле ключа хранится RegType типа TRIAL, тогда дата, когда они впервые запустили его, сохраняется в файле ключей, и флаг первого запуска устанавливается на 1. Затем они могут использовать его в течение 14 дней. Каждый раз, когда они запускают программу, сохраненная дата сравнивается с текущей датой.

Очень простой процесс написания. Это дурак доказательство? НЕТ, ничего нет! У меня был большой успех с моим приложением. Он не широко известен, поэтому нет хакеров, которые могли бы его взломать.

0 голосов
/ 19 января 2011

Вы можете использовать профессиональный инструмент как SoftwareShield. Я использую его в наших приложениях, и он предоставляет несколько моделей лицензий, включая демо-версию с ограниченным сроком действия.

...