C#演示应用程序(winform)-在特定时间后过期

C#演示应用程序(winform)-在特定时间后过期,c#,winforms,datetime,C#,Winforms,Datetime,我正在开发一个应用程序,我需要制作一个演示版,它将在30天内过期。 我现在的想法是将应用程序首次启动时的当前时间存储在一个简单的txt文件中,该文件存储在项目资源中(这样就不必将其写入硬盘或注册表),并且每次启动程序时都检查30天是否已过。 但是,如果用户将时间重置为较早的状态怎么办 然后我的应用程序仍然会启动,因为现在“当前日期”可以是“首次启动”后的1天 有没有什么方法可以让我获得一些信息以及第一个日期(或者,代替)来确保应用程序第一次启动的具体时间 谢谢您的时间。其中一个选项是从外部服务器

我正在开发一个应用程序,我需要制作一个演示版,它将在30天内过期。 我现在的想法是将应用程序首次启动时的当前时间存储在一个简单的txt文件中,该文件存储在项目资源中(这样就不必将其写入硬盘或注册表),并且每次启动程序时都检查30天是否已过。 但是,如果用户将时间重置为较早的状态怎么办

然后我的应用程序仍然会启动,因为现在“当前日期”可以是“首次启动”后的1天

有没有什么方法可以让我获得一些信息以及第一个日期(或者,代替)来确保应用程序第一次启动的具体时间


谢谢您的时间。

其中一个选项是从外部服务器而不是本地系统检查日期时间。但这也有可能被破解,因为用户可以在中间放置一个代理,作为应用程序的外部服务器,该代理可以在用户想要的任何时候发送。如果您想为新手用户提供解决方案,外部服务器方法是可以的,但是任何智能用户仍然可以破解应用程序。请记住,在客户端计算机上运行的任何代码都可能被破解,您只需在应用程序代码中翻转正确的位:)

在测试版中,我有一个简单的程序代码检查。它基本上就是你说的。在初始代码中是硬编码日期。然后,逻辑只是测试当前日期是否早于硬编码日期。非常原始,它依赖于用户系统日期。但是,一旦超过,程序将不会运行,除非更改系统日期。正如我提到的,我将其用于Beta,而不是有评估期的生产计划。为此,我使用Inflution License Tracker。这是payware,但它确实允许设置评估期和代码的实际许可。

有趣的问题-如何以某种方式编码初始日期时间-base64或甚至某种加密),然后每次运行应用程序时也存储日期时间


这样,您可以通过检查每个日期时间以及是否有有趣的事情发生(例如,今天的日期早于最后一个日期)来检测不一致您可以将用户拒之门外。

您是否检查过,因为其他评论说,有多种方法可以使日期检测变得困难或加密等。但用户需要绕过限制的是,通过在代码上附加调试器来找到“if/else”条件,并修改指令。。完成。。。不需要解密日期或其他任何信息。你将永远拥有那种神奇的如果/否则:)