确认系统时间

时间:2012-02-02 07:48:07

标签: c# time

我正在尝试创建一个基本上允许我在安装中推送DLL的系统和一个exe中的一些代码,这些代码允许我将我的所有未来程序作为beta版本发布一段时间。

现在问题当然是如果我想这样做,我需要选择直到程序有效。这很好,除了通过更改系统时钟,您可以轻松绕过系统。

现在,我想听听人们通常会做些什么。 我一直在尝试一些方法,比如联系一个站点来给出时间戳并进行比较,如果它不总是将程序启动时间增加超过9000就没问题 而且如果他们没有连接到互联网,那么人们将无法使用它。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

这不是100%保证的解决方案,但它会带你到那里

您需要在配置文件中实现这些功能(为什么配置文件,因为如果用户删除它,您的应用将无法运行)。还要加密以下所有数据。

  • 存储运行应用程序的日期和时间。
  • 存储应用程序运行的确切时间。

这样做可以避免:

  • 如果用户更改了计算机时间,您就会知道,因为您的应用程序正在记录日期和时间,它可能会与之前的时间重叠,比如用户在月份的第6个月和第10个月运行应用程序,然后他将日期还原为7,你会了解它。
  • 其次,用户可以将每次运行的日期更改为单个日期,在这种情况下,使用的总持续时间将对您有所帮助。假设用户每次运行时都将日期设置为月份的第1个月,在这种情况下,他可以使用24小时的应用程序,但不能超过该值。

其他选项,例如

  • 从外部服务器检查时间(缺陷:需要访问互联网)
  • 在注册表中存储时间(缺陷:用户可以轻松操作注册表)

希望这会对你有所帮助。

答案 1 :(得分:0)

如果您的软件可以访问某些本地服务器/ nas上的某些网络共享,您可以在此网络共享上创建一个新文件,并且此文件将使用server / nas的时钟设置创建时间,因此您可以将server / nas上设置的时间与本地计算机的时间进行比较。

或者您也可以在上次执行的最后一次保存某个位置(文件,在注册表中,在数据库中),如果时钟回到时间,那么您可以锁定应用程序并需要进一步的帮助: - )