在Vista / Win7上使用WMI检查夏令时

如何查看我所在的电脑是否有夏时制? (最好使用WMI)

根据TechNet上的这篇文章 ,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem ,但是Vista或Win7不支持属性DaylightInEffect 。 由于我的程序将在各种系统(XP,Vista,7)上运行,所以我会很感激一些便携式的查找方式。

Solutions Collecting From Web of "在Vista / Win7上使用WMI检查夏令时"

有记录的支持的操作系统列表是不准确的,这在我尝试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