我正在开发共享软件桌面应用程序。我到了需要实施试用/激活代码的地步。你如何处理这样的事情?我有我自己的想法,但我想看看什么是stackoverflow社区认为。需要关于实施时间限制试用的建议
我正在用C++/Qt进行开发。预期的平台是Windows/Mac/Linux。
感谢您的咨询!
我正在开发共享软件桌面应用程序。我到了需要实施试用/激活代码的地步。你如何处理这样的事情?我有我自己的想法,但我想看看什么是stackoverflow社区认为。需要关于实施时间限制试用的建议
我正在用C++/Qt进行开发。预期的平台是Windows/Mac/Linux。
感谢您的咨询!
防止什么,什么不能防范:
请记住,人们总是会找到一个方法来解决你的试用期。所以,你想让这个人不得不在试用期过后感到烦恼,但是如果在试用期内无法完成,这并不重要。
大多数人会认为这是太多的工作,试图让周围的试用期,如果有,甚至一个简单的机制。例如,人们总是可以使用filemon/regmon来查看在安装软件时哪些文件和注册表项发生了变化。
话虽这么说,一个简单的机制是最好的,因为它浪费更少的时间。
这里有一些想法:
扩展试验:
对于我们来说,当客户请求审判延期,我们向他们发送包含程序“TrialExtend.exe”和审判扩展码自动发送的电子邮件。该程序使用试用扩展代码联系我们的服务器进行验证。如果代码被验证,他们的试用期将被重置。
无论你做什么,都要密切关注系统日期。本书中最古老的技巧是在未来的某个时间点安装应用程序,然后在应用程序首次运行时存储愚蠢日期后返回实际日期。也许同步密钥与在线存储库?
为了防止出现这种情况,可以使用System.currentTimeMillis()的绝对值 - expirationDate.getTimeMillis(); 对不起,我是一个java的家伙。 Regards, Steff – Snicolas 2011-05-30 16:35:00
如果你是[比较]可能有网络连接,您可以与您的网站安装程序寄存器,然后对证每次启动时。
如果这不可行,将值写入文件系统上的(一个注册表项,条目和/ etc文件CONF等)世界改变的点可能是可行的。
布赖恩的答案是伟大的,但我想补充一下。
Linux用户通常不习惯为软件付费,他们往往对开源问题更加熟悉技术,甚至可能是“宗教”的。
因此,我真的建议保持简单 - 购买软件至少与窃取软件一样简单。
我建议它在试用期后唠叨或禁用某些功能(例如保存)而不是完全死机。只是一个观察,但基于特征的限制在Linux世界中似乎更常见。另外,使Linux版本成为“头等”版本 - 体面的安装程序等将有所帮助。
如果你比较小,或者你的程序比较小,那么任何人都会打扰它破解它的机会很小 - 所以只要专注于制造一个好的产品,一旦发生了一个简单的小问题。
也许真正的问题是时间有限的试验。我工作的公司做了很多活动目录工作,我们通常将我们的软件限制在少量用户的试用版本中。我觉得以某种方式限制功能有时候会更好,更容易实现,并且在用户只需更改计算机上的日期时不会失败。
有平衡的行为,你不能限制功能太严格,否则用户没有得到任何审判。同时,太宽松的限制不会激励购买。
不相关,但请记住,如果您使用QT开发商业应用程序,您必须*拥有QT开发者许可证。 QT许可证禁止使用开源版商业软件,其中包括共享软件。有关详细信息,请参阅http://trolltech.com/products/appdev/licensing/licensing。 – 2008-10-13 16:10:05
感谢您的建议。我们有商业许可证。不希望扰乱巨魔...... – JimDaniel 2008-10-13 16:52:44
很高兴听到:)奇趣已经给了社区很多东西,我觉得有必要为他们辩护,即使它可能不需要......很高兴看到你在支持他们。 – 2008-10-13 19:58:54