2008-10-13 10 views
21

Я разрабатываю бесплатное настольное приложение. Я до такой степени, что мне нужно реализовать код пробного использования/активации. Как вы относитесь к чему-то подобному? У меня есть свои собственные идеи, но я хочу посмотреть, что думает сообщество stackoverflow.Нужна консультация по реализации ограниченного времени процесса

Я развиваюсь с помощью C++/Qt. Предполагаемая платформа - Windows/Mac/Linux.

Спасибо за ваш совет!

+0

Не связано, но имейте в виду, что если вы разрабатываете коммерческие приложения с использованием QT, вы должны * иметь лицензию разработчика QT. Лицензия QT запрещает использование версии с открытым исходным кодом для коммерческого программного обеспечения, которое включает shareware. Подробнее см. Http://trolltech.com/products/appdev/licensing/licensing. – 2008-10-13 16:10:05

+3

Спасибо за совет. У нас есть коммерческая лицензия. Не хотел бы расстраивать троллей ... – JimDaniel 2008-10-13 16:52:44

+0

Это приятно слышать :) Trolltech дал так много для сообщества, что я чувствую необходимость защищать их, даже если это, вероятно, не требуется ... Рад видеть, что вы поддерживаете их. – 2008-10-13 19:58:54

ответ

23

Что для защиты от того, что и не для защиты от:

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

Большинство людей подумают, что слишком много работы, чтобы попытаться обойти пробный период, если есть даже простой механизм. Например, люди всегда могут использовать filemon/regmon, чтобы узнать, какие файлы и записи реестра меняются при установке вашего программного обеспечения.

Это, как говорится, простой механизм является лучшим, потому что он тратит меньше вашего времени.

Вот некоторые идеи:

  • Вы можете сделать подсчет галочка где-то в реестре для каждого уникального дня, запускаемого. Если количество тиков> 30, то покажите им сообщение с истекшим сроком действия.
  • Вы можете сохранить дату установки, но возьмите голову, чтобы проверить, есть ли у них больше дней, чем предполагалось в вашем пробном периоде, а затем сообщите им, что они истекли. Это будет защищать от людей, меняющих дату, прежде чем устанавливать их на следующий день.
  • Я бы порекомендовал вам удалить, удалив счетчик «дней подряд». Это происходит потому, что люди могут переоценить ваш продукт спустя несколько месяцев и в конечном итоге купить. Но если они не смогут его оценить, они не будут покупать. Ни один серьезный пользователь не успеет удалить/переустановить, чтобы получить дополнительное использование вашего продукта.

Продление испытания:

Для нас, когда клиент запрашивает продление пробного, мы посылаем их автоматизированную электронную почту, которая содержит программу «TrialExtend.exe» и судебный процесс расширения кода. Эта программа связывается с нашим сервером с расширением пробного кода, чтобы проверить его. Если код подтвержден, их пробный период сбрасывается.

3

Что бы вы ни делали, внимательно следите за системной датой. Самый старый трюк в книге - это установить приложение в какой-то момент в будущем, а затем вернуться к реальной дате после того, как приложение сохранит глупую дату при первом запуске. Может быть, синхронизировать ключ с онлайн-хранилищем?

+0

Чтобы этого избежать, можно использовать абсолютное значение System.currentTimeMillis() - expirationDate.getTimeMillis(); Извините, я парень из java. С уважением, Steff – Snicolas 2011-05-30 16:35:00

0

Если у вас [справедливо] есть сетевое подключение, вы можете иметь регистрацию установщика на своем веб-сайте, а затем проверять его каждый раз, когда он запускается.

Если это невозможно, запись значения в изменяемую в мире точку в файловой системе (запись в реестре, запись в файле и/etc conf файл и т. Д.) Может быть работоспособной.

2

Ответ Брайана замечательный, но я хотел бы что-то добавить.

Пользователи Linux обычно не привыкли платить за программное обеспечение, и они, как правило, более технологичны и, возможно, даже «религиозны» по вопросам с открытым исходным кодом.

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

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

В стороне, что делает версию linux «первоклассной» версией - достойным установщиком и т. Д. Поможет.

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

0

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