检查与WMI在Vista / Win7的夏令时(Check for daylight saving

2019-10-18 10:51发布

如何才能知道,如果我在电脑上已经夏令时的影响? (优选使用WMI)

根据这篇文章的的TechNet ,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem ,但物业DaylightInEffect不支持在Vista或Win7的。 正如我的程序将在各种系统(XP,Vista中,7)上运行,我将不胜感激找出一些可移植的方式。

Answer 1:

该文件支持的操作系统列表是不准确的,当我尝试这工作正常Win7上。 我想不出任何理由它不会对任何其他操作系统的支持,很容易找出使用Win32 API(GetTimeZoneInformation)。

您可以使用WmiCodeCreator快速检查。



Answer 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


文章来源: Check for daylight saving time with WMI on Vista/Win7
标签: windows wmi dst