C# 通过代码开启自动设置时间和自动设置时区选项
自动设置时间,需要看两个值,一个是W32Time下的Parameters里的Type值还有一个是W32Time本身下面的一个Start的值,这两个值设置自动就可以了,单独设置其中一个是不行的必须同时设置。
private void isAutoTimeSetting(){bool isParametersAuto = false;string keyName = @"SYSTEM\CurrentControlSet\Services\W32Time\Parameters";using (RegistryKey rKey = Registry.LocalMachine.OpenSubKey(keyName)){if (rKey != null && rKey.GetValue("Type") != null){string value = rKey.GetValue("Type").ToString();if (value == "NTP"){isParametersAuto = true;}else if (value == "NoSync"){isParametersAuto = false;}}rKey.Close();}bool isStartAuto = false;string keyName1 = @"SYSTEM\CurrentControlSet\Services\W32Time";using (RegistryKey rKey = Registry.LocalMachine.OpenSubKey(keyName1)){if (rKey != null && rKey.GetValue("Start") != null){string value = rKey.GetValue("Start").ToString();if (value == "3"){isStartAuto = true;}else if (value == "4"){isStartAuto = false;}}rKey.Close();}if (isStartAuto && isParametersAuto){AppendText(1, $"<Color>已经勾选为自动设置时间</Color>\n", Color.Green);}else{string tip = "未勾选为自动设置时间";AppendText(1, $"<Color>{tip}</Color>,请检查!\n", Color.Red);ErrorAdd(ErrorCode.systemTimeAutoSetting, tip);}}