我如何找出我使用的计算机是否有夏令时有效的时间? (最好使用WMI)

根据 这篇文章在Technet, ,我可以查询 SELECT DaylightInEffect FROM Win32_ComputerSystem, ,但是财产 DaylightInEffect 不支持Vista或Win7。由于我的程序将在各种系统(XP,Vista,7)上运行,因此我希望某种可移植的方法来查找。

有帮助吗?

解决方案

已记录的支持的OS列表不准确,当我尝试时,这在Win7上可以正常工作。我想不出任何原因都不会在任何其他操作系上得到支持,很容易找到Win32 API(GetTimeZoneInformation)。

您可以使用 Wmicodecreator 快速检查。

其他提示

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

(有关的: 如何使用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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top