如何才能知道,如果我在电脑上已经夏令时的影响? (优选使用WMI)
根据这篇文章的的TechNet ,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem
,但物业DaylightInEffect
不支持在Vista或Win7的。 正如我的程序将在各种系统(XP,Vista中,7)上运行,我将不胜感激找出一些可移植的方式。
如何才能知道,如果我在电脑上已经夏令时的影响? (优选使用WMI)
根据这篇文章的的TechNet ,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem
,但物业DaylightInEffect
不支持在Vista或Win7的。 正如我的程序将在各种系统(XP,Vista中,7)上运行,我将不胜感激找出一些可移植的方式。
该文件支持的操作系统列表是不准确的,当我尝试这工作正常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