【问题标题】:Determine whether time on Windows machine is updated automatically from server or not确定 Windows 机器上的时间是否从服务器自动更新
【发布时间】:2019-10-24 11:34:03
【问题描述】:

是否有任何方法可以确定 DateTime 是否在 Windows 上自动更新(当前使用 Windows 10)或不使用 C#。

我的意思是,Windows 具有根据您的地理位置从自己的服务器自动更新日期的功能。

正是我正在做的事情:我在注册表中添加了一些日期,并且每个程序执行都会检查从该日期起是否经过了 2-3 周。我不希望用户向后更改日期并引诱我的程序,因为它无法准确确定是否经过了 2-3 周。

我尝试过的:只是谷歌搜索并没有发现任何东西。

更多仍然无法理解我真正需要做什么的示例: 例如。程序已在 11 月 23 日执行。它(程序)将此日期写入注册表。在下一次执行时它从注册表中读取该日期并与今天的日期进行比较。如果从上次执行日期过去了 2 周,它应该做一些事情,例如退出程序,但我不希望用户手动更改系统的日期并引诱它没有超过 2 周的程序。

.NET 版本:4.7

【问题讨论】:

  • 听起来像是 XY 问题。即您真正想做的是实施某种形式的 DRM 或软件许可

标签: c# windows datetime system


【解决方案1】:

您正在做的事情,即阻止用户扩展您的应用程序的试用版,可能不值得付出努力。

足够持久的用户将使用 ProcMon 并检测您正在读/写的 regkey 并清除或更新它。哦,你加密了吗?他们将反编译您的可执行文件并找到您的加密密钥。

或者他们会擦除他们使用的虚拟机并在试用版过期后重新安装。

或者他们将配置一个他们控制的时间服务器,并在该服务器上设置时间......等等。

您将花多少时间在版权保护上,而这些时间可以更好地用于添加使您的应用程序值得花钱的功能?

无论如何请看注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2021-11-05
    • 2022-06-30
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多