摩托罗拉 MC3190 - Windows CE 6.0 通过注册表配置设备时间

摩托罗拉 MC3190 - Windows CE 6.0 通过注册表配置设备时间

我必须配置运行 Windows CE 6.0 的 Motorola MC3190,以使用时间服务器在冷启动后自动设置时间,包括时区。

这是我当前的配置,可以在设备的应用程序部分下的 Timereg.reg 中找到:

REGEDIT4

[HKEY_LOCAL_MACHINE\Services\Timesvc]
"Treshold":REG_DWORD
"Threshold"=5265C00
"RecoveryRefresh":REG_DWORD
"RecoveryRefresh"=36EE80
"Refresh":REG_DWORD
"Refresh"=5265C00
"Server":REG_MULTI_SZ
"Server" = "0.be.pool.ntp.org 1.be.pool.ntp.org 2.be.pool.ntp.org 3.be.pool.ntp.org" 
"ServerRole":REG_DWORD
"ServerRole" = 0
"Trustlocalclock":REG_DWORD
"Trustlocalclock" = 0 
"Keep":REG_SZ
"Keep"=1

[HKEY_LOCAL_MACHINE\nls]
"DefaultLCID" : REG_DWORD
"DefaultLCID" = 2060 

[HKEY_LOCAL_MACHINE\nls\overrides]
"LCID" : dword
"LCID" = 2060

[HKEY_LOCAL_MACHINE\Time]
"@": REG_SZ
@ = "Romance Standard Time"

[HKEY_LOCAL_MACHINE\Time Zones]
"@": REG_SZ
@ = "Romance Standard Time"

[HKEY_LOCAL_MACHINE\Time Zones\Romance Standard Time]
"MUI_Display"="@tzres.dll,-300"
"TZI"=hex:c4,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,03,00,00,\
  00,00,00,00,00,00,00,03,00,00,00,05,00,02,00,00,00,00,00,00,00
"Std"="Romance (standaardtijd)"
"MUI_Std"="@tzres.dll,-302"
"Dlt"="Romance (zomertijd)"
"MUI_Dlt"="@tzres.dll,-301"
"Display"="(UTC+01:00) Brussel, Kopenhagen, Madrid, Parijs"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Clock]
"AutoDST" : REG_DWORD
"AutoDST" = 0 

我正在尝试设置它,以便机器在冷启动时联系时间服务器,但它不起作用。时区正确设置为罗曼标准时间,但冷启动时启动的时间仍然是 2009 年 1 月 1 日凌晨 12:00。我相当确定没有发送 NTP 请求(wireshark 没有显示来自设备的任何请求),因此配置有问题。但我不知道是什么,我按应有的方式配置了一切。我哪里出错了?

编辑:

我弄清楚了问题所在。事实证明,如果设备仍在底座中,它就不会联系 NTP 服务器。如果您将其从底座中取出,它就不会再出现此问题。

我目前遇到的问题是时区有问题:时差 7 个小时。它似乎基于德克萨斯州时区,这台机器显然是在那里制造的。有办法改变这种情况吗?

更新:

经过更多测试后,我们发现在冷启动后第一次热重启后,时区更改已正确应用。但我们不知道为什么会发生这种情况。我们尝试了多种注册表文件序列组合,但这本身就是一个很大的挑战。有人知道为什么会发生这种情况以及我们如何改变这种情况吗?

答案1

经过一些测试,我们发现新的注册表设置直到设置时区后才会导入注册表设置。因此,设备会进行冷启动,读取注册表,设置时区值,然后导入注册表设置。当然,这意味着时间仍然基于旧的注册表设置。

我们通过编写一个小程序解决了这个问题,该程序在冷启动后自动进行热重启,以便正确配置注册表。

答案2

@Nzall 的回答激励我更进一步:我没有创建某种应用程序来管理冷启动后的热启动,而是在 StartUpCtl/OnRestore 目录中添加了对 warmboot.exe(在 xda devs 论坛中非常流行)的调用,确保在冷启动完全加载后执行热启动,并正确转换时区,正如@Nzall 自己发现的那样(谢谢!)。

启动控制是一个著名的程序,负责按照您的意愿处理手持设备中的任何例程 - 运行程序,复制/删除文件等。

相关内容