我想为应用程序生成序列号(仅在一段时间内使用),此序列号基于时间,因此如果更改我的时钟时间,它将是不必要的代码计算机,所以我问你是否有可能获得真正的DateTime,即使我用我的计算机改变了C#的时间?
(我假设用户没有互联网连接)
答案 0 :(得分:8)
我问你是否有可能获得真正的DateTime,即使我使用C#更改了我的计算机上的时间?
(我假设用户没有互联网连接)
没有。系统时钟是本地时间信息源。如果你无法找到可靠的外部资源(由于缺乏互联网连接),那么你就无法依赖它。
我建议您使用互联网连接检查时间是否存在,否则会重新回到系统时钟,可能会检测到时间已经显着逆转(如果在某一时刻你是"请参阅"时间在4月20日,然后在另一个你看到"时间为4月15日,你可以假设一些奇怪的事情发生了)并接受一个充满动力的用户将绕过支票。
答案 1 :(得分:2)
人们做什么:记录你的程序在注册表中某处执行的时间(本地时钟)(或另一个难以猜测的地方)。
如果您的程序再次运行并在之前找到本地时间,则此记录的时间戳会拒绝启动。
这是一种防止用户操作时钟以便对您的许可进行反应的方法。
你必须考虑夏令时的chages,所以你应该允许一小时的“时间跳跃”