无法在C#中应用夏令时更改

时间:2012-08-22 20:30:30

标签: c#-2.0

我正在尝试解决夏令时的问题。代码将在嵌入在.net 2.0 fw下的Windows XP上运行。我有一切工作,除了一个小问题。要求是以编程方式在TimeDate.cpl面板中设置夏令时设置,该面板只是您设置日期和时间的窗口。我发现这样做的唯一方法是创建一个注册表项,这确实有效。但是,在您实际打开TimeDate窗口,单击时区面板并单击“应用”之前,它不会生效。即使重启也不会。我的问题是:有没有办法让我的C#应用​​程序打开TimeDate窗口并单击应用?

1 个答案:

答案 0 :(得分:0)

可能不是,因为你首先做错了。 : - )

正确的方法是使用API​​函数SetDaylightTime,它接受​​一个参数,指示夏令时是否在本地时区有效。上面引用的函数显然,在XP Embedded上不可用。其余的是有效的,AFAIK。

要使用注册表,您不需要TimeDate控制面板小程序;您可以使用Daylight Saving Time Registry Settings中的代码示例直接在代码中执行此操作。注意代码中对RegFlushKey的调用;他们使改变持久。另请注意,它提到更改对下次重新启动有效,而不是立即生效;这就是WinXP桌面(以及Vista / Win7,IIRC)的工作方式。

相关问题