Delphi 如何防止用户更改系统日期/时间(在Windows 7中)?

Delphi 如何防止用户更改系统日期/时间(在Windows 7中)?,delphi,windows-7,Delphi,Windows 7,谷歌搜索之后,一般的建议是创建一个标准的非管理员帐户 我刚试过。我只有一个帐户,我自己的,这是一个管理员,然后创建了第二个(不是来宾帐户)。我注销了自己的帐户,进入了新的帐户,并试图更改时间。Windows 7弹出一个框,询问我的主帐户是否允许此操作(并提示输入密码) 我被告知“不可能更改系统日期/时间”。我打算交付一台只有标准帐户和软件的PC,但(我认为)无法阻止用户创建管理帐户和更改日期/时间 我可以从Delphi中以编程方式防止这种情况发生吗?或者我必须说,如果用户想要破坏性的话,我不能阻

谷歌搜索之后,一般的建议是创建一个标准的非管理员帐户

我刚试过。我只有一个帐户,我自己的,这是一个管理员,然后创建了第二个(不是来宾帐户)。我注销了自己的帐户,进入了新的帐户,并试图更改时间。Windows 7弹出一个框,询问我的主帐户是否允许此操作(并提示输入密码)

我被告知“不可能更改系统日期/时间”。我打算交付一台只有标准帐户和软件的PC,但(我认为)无法阻止用户创建管理帐户和更改日期/时间


我可以从Delphi中以编程方式防止这种情况发生吗?或者我必须说,如果用户想要破坏性的话,我不能阻止它吗?

在应用程序中,您可以在应用程序运行时检测用户更改系统时间

当系统时间更改时,您将收到WM_TIMECHANGE

启动时,可以保存gettickcount(作为StartTickCount)和now(作为StartTime)。在检查时,您可以检查滴答声计数之间的差异和时间之间的差异是否匹配(允许小的差异),并了解差异。但是,如果用户更改了远离应用程序的系统时间,此技巧将不起作用。也许你可以有一个服务,这是自动开始检查这个

如果您需要更改回原始时间,以下是一些资源:


顺便说一句,在操作系统级别,普通用户无法创建管理员用户

通常使用Windows组策略设置此类限制


在delphi中,您可以使用或。

如果您使用标准帐户分发PC,并且您持有管理员用户的密码,则用户无法使用自己的受限帐户创建新的管理员帐户。@RRUZ,是什么阻止用户关闭电脑并更改BIOS中的日期和时间?虽然您无法“恢复”Windows管理员的密码,但您可以轻松地使用BIOS密码。如果计算机上的时间错误怎么办?用户难道不能更改它吗?我看不出这个问题与Delphi有什么关系(除了希望收到准备在Delphi中粘贴的代码外)?@Justmade你同意我的看法。POS的特别版不是桌面窗口。Mawg使用的是桌面窗口,而不是POS版本。+1我在考虑存储时间和检查更改。我可以自动启动我的应用程序(它应该是唯一运行的应用程序,但是..你知道用户…:-/@Mawg是的,对于服务员,我的程序正常调用登录服务器,使用服务器时间,但用户将拔出/退出程序/更改时间。所以我保留了几个跟踪技巧(最新记录时间>当前记录时间?/上次退出程序时间>当前程序开始时间/电缆插入时间等)并记录系统管理员可能考虑的欺骗信息。+ 1,但我无法想象如何进入Windows 7的Windows组策略编辑器…控制面板/管理工具?然后什么?AHA!WINWOS家庭溢价可能没有这样的事情。甚至运行PORSEC。MSC在另一个机器上工作。