需要关于实施限时试用的建议

22

我正在开发一款共享软件桌面应用程序。 我已经到了需要实现试用/激活代码的地步。 你如何处理这样的事情? 我有自己的想法,但我想知道stackoverflow社区的想法。

我使用C ++ / Qt进行开发。 预计平台为Windows / Mac / Linux。

感谢您的建议!


不相关,但请记住,如果您使用QT开发商业应用程序,则必须拥有QT开发人员许可证。QT许可证禁止将开源版用于商业软件,包括共享软件。有关详细信息,请参见http://trolltech.com/products/appdev/licensing/licensing。 - Mihai Limbășan
3
谢谢您的建议。我们持有商业许可证,不想惹恼那些喜欢挑毛病的人... - JimDaniel
太好了听到这个消息 :) Trolltech为社区做出了很多贡献,我觉得有必要为他们辩护,即使可能并不需要...很高兴看到你支持他们。 - Mihai Limbășan
5个回答

23

需要保护和不需要保护的内容:

请记住,人们总会找到办法绕过试用期。因此,你需要让他们很烦恼才能绕过你的试用期,但如果无法绕过你的试用期也没关系。

如果有简单的机制,大多数人都会认为绕过你的试用期太麻烦了。例如,人们可以使用filemon/regmon查看安装您的软件后哪些文件和注册表项发生了变化。

话虽如此,最好还是采用简单的机制,因为这样浪费的时间更少。

以下是一些想法:

  • 你可以在某个唯一日期运行时的注册表中进行一个勾子计数。如果tick count > 30,则向他们显示一个过期消息。
  • 你可以存储安装日期,但要注意检查它们是否有比你的试用期更长的天数,然后告诉他们已经过期。这将防止人们在安装前更改日期到未来的某一天。
  • 我建议在卸载时删除你的“运行天数”计数。这是因为人们可能会在几个月后重新评估你的产品并最终购买。但如果他们无法评估它,他们就不会购买。没有认真的用户会有时间卸载/重新安装以获取您产品的额外使用。

延长试用期:

对于我们来说,当客户请求试用期延长时,我们会发送一封自动邮件,其中包含一个名为“TrialExtend.exe”的程序和一个试用期延长代码。该程序将使用试用期延长代码联系我们的服务器进行验证。如果验证通过,则重置其试用期。


2
没有认真的用户会有时间卸载/重新安装,只为了获得您产品的额外使用。- 我肯定会这样做。 - wingerse

3

无论你做什么,都要密切关注系统日期。最古老的技巧是在未来某个时间安装应用程序,然后在应用程序首次运行时返回真实日期。也许可以将密钥与在线存储库同步?


为了防止这种情况,可以使用 System.currentTimeMillis() - expirationDate.getTimeMillis() 的绝对值。抱歉,我是一名 Java 程序员。祝好,Steff。 - Snicolas

2
的回答很好,但我想补充一些内容。

Linux用户通常不习惯为软件付费,他们往往更懂技术,甚至在开源问题上可能会有“宗教”信仰。

因此,我真的建议保持简单 - 这只是一个小障碍,使购买软件至少与盗版同样容易。

我建议在试用期后烦扰或禁用某些功能(例如保存),而不是完全死亡。只是一个观察结果,在Linux世界中,基于功能的限制似乎更为普遍。

顺便说一下,使Linux版本成为“一流”的版本 - 良好的安装程序等将有所帮助。

如果你相对较小,或者你的程序相对较小众,那么没有人会费心去破解它 - 所以只需专注于制作一个良好的产品,在时间到期后提供一个简单的烦恼即可。


0
也许真正的问题在于时间限制的试用。我所在的公司做了很多Active Directory的工作,我们通常会将软件限制在少量用户的试用版本中。我认为,在某种程度上限制功能有时更好、更容易实现,并且不会在用户简单地更改计算机日期时失败。
这是一个平衡的过程,不能太严格限制功能,否则用户就无法从试用中获得任何东西。同时,如果限制太松,也没有购买的动力。

0

如果您有一个相对稳定的网络连接,您可以让安装程序在您的网站上注册,并在每次启动时检查。

如果这不可行,将一个值写入文件系统上可修改的点(注册表项、/etc配置文件中的条目等)可能是可行的。


2
要注意这一点。用户非常警惕那些“打电话回家”的程序——他们无从得知它发送的内容,甚至可能是他们的信用卡号码和银行密码。 - Head Geek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接