题
我如何找出我使用的计算机是否有夏令时有效的时间? (最好使用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
不隶属于 StackOverflow