1

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

根据TechNet 上的这篇文章,我可以查询,但Vista 或 Win7 不支持SELECT DaylightInEffect FROM Win32_ComputerSystem该属性。DaylightInEffect由于我的程序将在各种系统(XP、Vista、7)上运行,我希望能找到一些便携的方法。

4

2 回答 2

3

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

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

于 2009-11-26T17:33:10.513 回答
2

这是使用问题中引用的 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
于 2013-11-05T16:46:44.063 回答