C#2008 SP1
我正在编写一个我想要给一些客户提供的应用程序。
使用的最佳解决方案是什么,以便在跟踪期(1个月)后,应用程序将不再有效。
我在想,如果他们有兴趣购买该软件,我会给他们许可证密钥或其他东西,以解锁该应用程序。
我的预算非常有限,因为我自己工作。那么有没有免费的第三方产品呢?
答案 0 :(得分:9)
如果您使用基于日期的方式,可以通过用户设置其日期来避开它(尽管我怀疑人们经常这样做)。另一种方法是允许应用程序在到期前启动一定次数;这种方法显然忽略了任何日期变化。
我首选的方法是禁用部分应用程序,这对正常使用程序至关重要,但对评估并不重要(例如,保存工作的能力)。我使用自己的软件执行此操作,然后在购买完整程序时向他们发送一个独特的解锁代码。这种方法的一个主要优点是安装的演示功能永远是潜在的销售工具。我宁愿让我的程序在某种程度上工作;我不认为“抱歉,此程序已过期”消息会产生许多销售。
答案 1 :(得分:5)
您的选择:
在安装时向注册表写入内容,以便以后很难找到并删除。这样,您的应用程序将知道它最初安装的时间以及它是否仍然可以立即工作或停止。如果清理好注册表或重新安装操作系统,则此方法将失败。
使用某种在线验证服务。将免于[1]的缺点。还可以让您监控超出操作系统安装的应用程序活动。为此,您需要以某种方式唯一地识别用户PC并将其签名传输到您的服务器。
答案 2 :(得分:4)
这是我阻止用户玩日期/时间设置并重新约会时间的技巧。
当应用程序第一次运行时,在注册表中加密第一个运行日期和结束试用日期以及上次运行日期。每次应用程序运行时,解密并检查最终试用日期,而不是系统日期。此解决方案适用于没有互联网连接的用户。
答案 3 :(得分:3)
在安装过程中编写注册表项。密钥将包含安装日期。必须加密注册表项中的日期。
启动应用程序时,请检查是否存在此注册表项。如果它不存在,则关闭应用程序,否则解密日期,检查试用期并在试用期结束时关闭应用程序。
答案 4 :(得分:1)
最简单的解决方案(因此最简单的规避)是将程序首次安装(或运行)的日期存储在文件中,然后在程序启动时检查当前日期。如果差异> 30天后退出该计划。
通过将日期存储在更加模糊的地方或者用户更难以篡改的地方(例如注册表),那么它们越来越难以绕过系统并获得更多时间来使用它,但不会停止他们在PC上倒拨时钟。
如果您将日期存储在服务器上并从服务器获取日期,那么这样更安全,但这意味着用户必须拥有开放的互联网连接才能使用您的软件。