【问题标题】:Check for daylight saving time with WMI on Vista/Win7在 Vista/Win7 上使用 WMI 检查夏令时
【发布时间】:2010-12-20 08:16:14
【问题描述】:

如何确定我使用的计算机是否有夏令时? (最好使用 WMI)

根据this article at TechNet,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem,但是Vista或Win7不支持DaylightInEffect属性。由于我的程序将在各种系统(XP、Vista、7)上运行,我希望有一些可移植的方式来查找。

【问题讨论】:

    标签: windows wmi dst


    【解决方案1】:

    记录的支持的操作系统列表不准确,当我尝试时,这在 Win7 上运行良好。我想不出任何其他操作系统不支持它的原因,使用 Win32 API (GetTimeZoneInformation) 很容易找到。

    您可以使用WmiCodeCreator 进行快速检查。

    【讨论】:

    • 确实,它似乎在实践中有效。对未记录的 API 表示欢迎。
    【解决方案2】:

    这是一个使用问题中引用的 WMI 查询实现的布尔函数。

    (相关:How Can I Determine My Time Zone Offset Using VBScript?

    Function IsDaylightInEffect()
        Const sComputer = "."
    
        Dim oWmiService : Set oWmiService = _
            GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
                      & sComputer & "\root\cimv2")
    
        Set cItems = oWmiService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
    
        For Each oItem In cItems
            IsDaylightInEffect = oItem.DaylightInEffect
            Exit For
        Next
    End Function
    

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2022-10-16
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 2012-05-26
      • 2013-12-23
      • 2018-01-12
      • 2011-12-18
      相关资源
      最近更新 更多