【问题标题】:C# Disable system time changeC# 禁用系统时间更改
【发布时间】:2012-08-07 07:52:46
【问题描述】:

我正在尝试制作一个家长控制程序,以防止在晚上 11:00 之后使用计算机,但为了确保它不会被绕过,我要么必须使用外部时间监控源而不是本地时间 (在计算机上)...所以我想知道是否可以从我的路由器请求时间,我做了一些研究但我找不到任何东西(我的路由器是 D-Link 的)。

所以我突然得出结论,我必须禁用时间更改。有没有办法做到这一点?比如撤销“SeSetSystemTime”权限?

【问题讨论】:

    标签: c# time permissions


    【解决方案1】:

    附带说明:“监护人”软件,无论多么复杂都无法替代育儿:)

    关于这个问题:如果你的目标是 Win7,你可以阻止用户更改 system time,我认为对于所有 Windows 版本至少应该可以做到 XP

    【讨论】:

    • 有没有办法通过代码做到这一点?我可以只编辑权限以防止修改系统时间并将每个帐户都设置为“受限”,这样他们就无法还原吗?
    • Checkout stackoverflow.com/questions/981010/… 您要监控的用户帐户根本不应该拥有更高的权限,否则您的努力毫无意义。
    【解决方案2】:

    为什么要从路由器中获取它?

    只需从时间服务器获取 :) 协议是 NTP。

    检查这个问题以获得良好的开端:How to Query an NTP Server using C#?

    【讨论】:

    • 晚上 11 点之后使用路由器上的防火墙规则阻止互联网访问,此后将不允许与任何 IP 通信。因此,当防火墙规则激活时,我无法真正查询时间服务器。
    【解决方案3】:

    如果您的路由器在通过 HTTP 协议交互时设置了 cookie,那么您可以使用该信息。否则,没有其他办法(如果您没有互联网)。

    但是,对于一个案例,可以考虑每分钟获取时间戳,如果时间发生更改,请将更改保存到时间更改列表中,以通过加减时间更改保持原始时间。

    【讨论】:

    • 时间戳的想法看起来很有趣。如果没有更好的解决方案,我可能会尝试。
    【解决方案4】:

    您可以使用 Internet 时间服务器,查询这些服务器的代码很容易找到。

    例如看看这个

    http://www.codeproject.com/Articles/5972/Daytime-Internet-Time-Service-Class

    【讨论】:

    • 正如我在对 Gerald Versluis 帖子的评论中所说,晚上 11 点之后互联网访问被阻止。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 2012-01-03
    相关资源
    最近更新 更多