如何确定我所使用的计算机是否具有夏令时? (最好使用WMI)
根据this article at TechNet,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem
,但Vista或Win7不支持属性DaylightInEffect
。由于我的程序将在各种系统(XP,Vista,7)上运行,我希望通过一些可移植的方式来查找。
答案 0 :(得分:3)
文档支持的操作系统列表不准确,在我尝试时在Win7上运行正常。我想不出任何其他操作系统不支持它的任何原因,很容易找到Win32 API(GetTimeZoneInformation)。
您可以使用WmiCodeCreator进行快速检查。
答案 1 :(得分: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