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

时间:2012-03-15 02:50:35

标签: delphi windows-7

通过Google搜索,一般建议是创建一个标准的非管理员帐户。

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

我被告知“不可能改变系统日期/时间”。我打算提供一台只有标准帐户和我的s / w的PC,但不能(我认为)阻止用户创建管理帐户并更改日期/时间。

我是否可以从Delphi中预防这种情况,或者我只是要说如果用户想要破坏性我无法阻止它?

2 个答案:

答案 0 :(得分:11)

通常使用Windows组策略

设置此类限制

enter image description here

来自delphi,您可以使用Group Policy APIRSoP WMI Classes

答案 1 :(得分:4)

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

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

启动时,您可以保存gettickcount(As StartTickCount)和now(As StartTime)。检查时,您可以检查tickcount和时间之间的差异是否匹配(允许小的差异)并知道不同。但是,如果用户改变了远离应用程序的系统时间,则此技巧不起作用。也许你可以有一个自动开始检查的服务。

如果您需要更改回原始时间,请参阅以下资源: CHANGE the system TIME

btw,在操作系统级别,普通用户无法创建管理员用户。