windows - 我如何检查用户是否将他的时钟拨回?

标签 windows windows-7 windows-vista windows-xp clock

在我的桌面程序中,我想检查一下用户是否已将他的时钟拨回。

为此,我将某些操作系统文件的时间戳与当前计算机日期进行比较。如果有任何时间晚于计算机认为的当前日期,那么他一定是将时钟拨回了。

对于 Windows XP,我一直在使用这样的文件:

c:\win386.swp
c:\windows\user.dat
and several others.

两个问题:

  1. 这是一种不错的方法,还是有更好的方法?

  2. (假设 1 的答案是“不错”)有哪些好的 Windows Vista 和 Windows 7 文件可以与之比较?


结论:Priyank 说了一些显而易见的事情,但我没有明白:与其使用任何系统文件,最简单的方法可能是只使用程序本身的时间戳。毕竟,它的安装日期正是您希望试用开始的日期。

事实证明,根据您的回答以及我对其他相关 StackOverflow 问题和提到的文章的研究,我决定采用一个更简单的方案。我的试用用户必须获得 key 才能使用试用版。我已经将注册日期嵌入到 key 中。我真的不必检查是否将时钟拨回。相反,我只能查看当前时间是否在注册日期和注册日期加上 n 天之间。

如果他们想费心绕过该计划,那就随他们去吧。我同意那些人无论如何都不会付钱。使您的程序成为人们喜欢并想要使用并且大多数人愿意付费的有值(value)的东西。

最佳答案

Windows 文件总是有较早的日期,最好用系统日期检查程序的创建或修改日期。或者任何时候你的程序退出时一定要记下时间戳并将它与你下次启动程序时进行比较,并且总是有 NTP:http://en.wikipedia.org/wiki/Network_Time_Protocol

关于windows - 我如何检查用户是否将他的时钟拨回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747348/

相关文章:

windows - 批处理 : How to echo string containing '&' char to a file

windows - 如何跟踪 ADO 调用

javascript - 对象不支持属性或方法 initList?

visual-studio-2008 - 为什么我的 Debug.Write 坏了?

internet-explorer - 使用 powershell 加载新的 IE 窗口并在后台执行操作

c# - 从Windows中的立体声混音中获取声音样本

windows - 更改线程 session ID

windows-vista - NTFS(Windows XP 和 Windows Vista)中的最大文件名长度?

windows - Affectiva emotion SDK - 无法使用 VideoDetector 处理 webm 文件

c# - 以编程方式检查 Windows 应用商店应用程序更新