您好,有一个提供 30 天试用期的应用程序。安装后,我正在添加一个具有当前DateTime.Now
值的注册表项。
installDate = DateTime.Now;
RegistryKey regKeyAppRoot = Registry.CurrentUser.CreateSubKey(registryKeyPath);
regKeyAppRoot.SetValue("InstallDate", installDate);
每当应用程序启动时,我都会从注册表中加载值并再次将其与当前DateTime.Now
值进行比较,显然取决于比较的结果,我会显示适当的消息。
RegistryKey regKeyAppRoot = Registry.CurrentUser.CreateSubKey(registryKeyPath);
installDate = (DateTime)regKeyAppRoot.GetValue("InstallDate");
if (installDate.AddDays(30) > DateTime.Now)
; //MessageBox.Show(...)
我的问题是系统时间的简单更改(到过去)只会允许再次使用应用程序,因为条件将不再满足。这可以解释为DateTime.Now 属性获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。
我怎样才能避免这种情况并获得自安装应用程序以来的确切天数?