搜索过之后,一般的建议是创建一个标准的非管理员帐户。
我刚试过了。我只有一个帐户,即我自己的帐户,它是管理员,然后创建了第二个帐户(不是Guest帐户)。我注销了我自己的帐户,进入了新的帐户,并试图更改时间。Windows7弹出一个对话框,询问我的主账号是否允许这样做(并提示输入密码)。
我被告知“不能更改系统日期/时间”。我打算交付一台只有标准帐户和s/w的PC,但无法(我认为)阻止用户创建管理帐户和更改日期/时间。
我能从Delphi中从编程上阻止这一点吗?或者我只能说,如果用户想要破坏,我就无法阻止它?
发布于 2012-03-15 11:05:46
在您的应用程序中,您可以实际检测到用户在应用程序运行时更改系统时间。
当系统时间更改时,您将收到WM_TIMECHANGE。
在启动时,您可以保存gettickcount (作为StartTickCount)和现在(作为StartTime)。在检查时,您可以检查tickcount之间的差异和时间之间的差异是否匹配(允许有小的差异),并了解差异。但是,如果用户更改系统时间远离您的应用程序,则此技巧不起作用。也许你可以有一个服务,这是自动开始检查这个。
如果你需要改回原来的时间,这里有一些资源:CHANGE the system TIME
顺便说一句,在操作系统级别,普通用户不能创建管理员用户。
发布于 2012-03-15 11:10:24
通常,此类限制是使用Windows组策略设置的

在delphi中,您可以使用Group Policy API或RSoP WMI Classes。
https://stackoverflow.com/questions/9713341
复制相似问题