我正在尝试解决夏令时的问题。代码将在嵌入在.net 2.0 fw下的Windows XP上运行。我有一切工作,除了一个小问题。要求是以编程方式在TimeDate.cpl面板中设置夏令时设置,该面板只是您设置日期和时间的窗口。我发现这样做的唯一方法是创建一个注册表项,这确实有效。但是,在您实际打开TimeDate窗口,单击时区面板并单击“应用”之前,它不会生效。即使重启也不会。我的问题是:有没有办法让我的C#应用程序打开TimeDate窗口并单击应用?
答案 0 :(得分:0)
可能不是,因为你首先做错了。 : - )
正确的方法是使用API函数上面引用的函数显然,在XP Embedded上不可用。其余的是有效的,AFAIK。SetDaylightTime
,它接受一个参数,指示夏令时是否在本地时区有效。
要使用注册表,您不需要TimeDate控制面板小程序;您可以使用Daylight Saving Time Registry Settings中的代码示例直接在代码中执行此操作。注意代码中对RegFlushKey
的调用;他们使改变持久。另请注意,它提到更改对下次重新启动有效,而不是立即生效;这就是WinXP桌面(以及Vista / Win7,IIRC)的工作方式。