using Microsoft.Win32; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace HMI.Simple.Util { public class ParameterUtil { private static string Company = "JingCe"; private static string Program = "HMI"; public static string GetCommonParameterValue(string path, string name) { if (!File.Exists(path)) return null; List datas = XmlHelper.DeserializeFromXml>(path); ParameterData data = datas.FirstOrDefault(d => d.Name == name); if (data == null) return null; return data.Value; } /// /// 获取HMI里配置的参数 /// /// /// public static string GetCommonParameterValue(string name, out string errMsg) { errMsg = string.Empty; try { string registryPath = $@"SOFTWARE\{Company}\{Program}"; // 尝试打开注册表键 using (RegistryKey key = Registry.LocalMachine.OpenSubKey(registryPath)) { if (key == null) { errMsg = "注册表不存在,请先运行一次HMI"; return null; } string value = key.GetValue("Location")?.ToString(); if (string.IsNullOrEmpty(value)) { errMsg = "注册表不存在,请先运行一次HMI"; return null; } string path = Path.Combine(value, "Config", "Parameter", "CommonParameter.data"); if (!File.Exists(path)) { errMsg = "未找到配置文件"; return null; } List datas = XmlHelper.DeserializeFromXml>(path); ParameterData data = datas.FirstOrDefault(d => d.Name == name); if (data == null) { errMsg = "未找到参数,请检查配置"; return null; } ; return data.Value; } } catch (Exception ex) { errMsg = ex.Message; return null; } } } }