2008-10-13 58 views
21

我正在开发共享软件桌面应用程序。我到了需要实施试用/激活代码的地步。你如何处理这样的事情?我有我自己的想法,但我想看看什么是stackoverflow社区认为。需要关于实施时间限制试用的建议

我正在用C++/Qt进行开发。预期的平台是Windows/Mac/Linux。

感谢您的咨询!

+0

不相关,但请记住,如果您使用QT开发商业应用程序,您必须*拥有QT开发者许可证。 QT许可证禁止使用开源版商业软件,其中包括共享软件。有关详细信息,请参阅http://trolltech.com/products/appdev/licensing/licensing。 – 2008-10-13 16:10:05

+3

感谢您的建议。我们有商业许可证。不希望扰乱巨魔...... – JimDaniel 2008-10-13 16:52:44

+0

很高兴听到:)奇趣已经给了社区很多东西,我觉得有必要为他们辩护,即使它可能不需要......很高兴看到你在支持他们。 – 2008-10-13 19:58:54

回答

23

防止什么,什么不能防范:

请记住,人们总是会找到一个方法来解决你的试用期。所以,你想让这个人不得不在试用期过后感到烦恼,但是如果在试用期内无法完成,这并不重要。

大多数人会认为这是太多的工作,试图让周围的试用期,如果有,甚至一个简单的机制。例如,人们总是可以使用filemon/regmon来查看在安装软件时哪些文件和注册表项发生了变化。

话虽这么说,一个简单的机制是最好的,因为它浪费更少的时间。

这里有一些想法:

  • 你可以做一个剔某处注册表计数正在运行的每一天独特。如果滴答数> 30,则向他们显示过期的消息。
  • 您可以将安装日期,而是采取头,以检查是否有可用的他们更比天试用版应该是,然后你告诉他们,他们都过期了。这将防止人们在将来的一天安装之前更改日期。
  • 我会建议让你的卸载,删除你的“天运行”数。这是因为人们可能会在几个月后重新评估您的产品并最终购买。但如果他们无法评估,他们不会购买。没有严重的用户有时间去卸载/重新安装,以获得额外的产品使用。

扩展试验:

对于我们来说,当客户请求审判延期,我们向他们发送包含程序“TrialExtend.exe”和审判扩展码自动发送的电子邮件。该程序使用试用扩展代码联系我们的服务器进行验证。如果代码被验证,他们的试用期将被重置。

3

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

+0

为了防止出现这种情况,可以使用System.currentTimeMillis()的绝对值 - expirationDate.getTimeMillis(); 对不起,我是一个java的家伙。 Regards, Steff – Snicolas 2011-05-30 16:35:00

0

如果你是[比较]可能有网络连接,您可以与您的网站安装程序寄存器,然后对证每次启动时。

如果这不可行,将值写入文件系统上的(一个注册表项,条目和/ etc文件CONF等)世界改变的点可能是可行的。

2

布赖恩的答案是伟大的,但我想补充一下。

Linux用户通常不习惯为软件付费,他们往往对开源问题更加熟悉技术,甚至可能是“宗教”的。

因此,我真的建议保持简单 - 购买软件至少与窃取软件一样简单。

我建议它在试用期后唠叨或禁用某些功能(例如保存)而不是完全死机。只是一个观察,但基于特征的限制在Linux世界中似乎更常见。另外,使Linux版本成为“头等”版本 - 体面的安装程序等将有所帮助。

如果你比较小,或者你的程序比较小,那么任何人都会打扰它破解它的机会很小 - 所以只要专注于制造一个好的产品,一旦发生了一个简单的小问题。

0

也许真正的问题是时间有限的试验。我工作的公司做了很多活动目录工作,我们通常将我们的软件限制在少量用户的试用版本中。我觉得以某种方式限制功能有时候会更好,更容易实现,并且在用户只需更改计算机上的日期时不会失败。
有平衡的行为,你不能限制功能太严格,否则用户没有得到任何审判。同时,太宽松的限制不会激励购买。