/* --创建人:韩维柏 --创建日期:2017-06-20 --修改人: --修改日期: --说明:密钥配置、SEM设置 */ using System; using System.Data; using System.IO; using System.Windows.Forms; using Microsoft.Win32; using System.Collections; namespace OTSSysMgrApp { public partial class OTSSystemManagerForms : Form { #region 全部变量声明 //获取XML 路径 static string xmlFilePath = string.Empty;// System.Configuration.ConfigurationManager.ConnectionStrings["XMLFilePath"].ConnectionString; //日志路径 static string XMLFileName = string.Empty;//System.Configuration.ConfigurationManager.ConnectionStrings["XMLFileName"].ConnectionString; static string DLLXMLFileName = string.Empty;//System.Configuration.ConfigurationManager.ConnectionStrings["DLLXMLFileName"].ConnectionString; //设置日志路径 static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger(); string SubKey = "OTSDevName"; //国际化 OTSSysMgrTools.Language lan; //国际化存储信息 Hashtable table; #endregion #region 构造函数 public OTSSystemManagerForms() { try { //获取XML 路径 xmlFilePath = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFilePath"].ConnectionString; XMLFileName = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFileName"].ConnectionString; DLLXMLFileName = System.Configuration.ConfigurationManager.ConnectionStrings["DLLXMLFileName"].ConnectionString; InitializeComponent(); } catch (Exception ex) { log.Error("OTSSystemManagerForms_OTSSystemManagerForms()--错误信息:"+ex.ToString()); } //国际化 lan = new OTSSysMgrTools.Language(this); table = lan.GetNameTable(this.Name); rdb_ch.Checked = true; } #endregion #region 保存设置 /// /// 保存设置 /// /// 节点名称 /// 节点参数值 public void SaveSetting(string Name, string Value) { try { //判断XML文件中是否存在 if (!XMLOperationClass.ExistsXmlInfo(Name)) { //调用添加XML节点功能 XMLOperationClass.AddXmlInfo(Name, Value); } else { //调用修改XML节点功能 XMLOperationClass.EditXmlInfo(Name, Value); } } catch (Exception ex) { //记录日志信息 log.Error(ex.Message.ToString()); } } #endregion #region 修改设置 public void EditSetting(string Name, string Value) { try { //调用修改XML节点功能 XMLOperationClass.EditXmlInfo(Name, Value); } catch (Exception ex) { //记录日志信息 log.Error(ex.Message.ToString()); } } #endregion #region 控件事件汇总 /// /// 打开SEM设置 /// /// /// private void btnSEMTest_Click(object sender, EventArgs e) { if (CmbSEMController.Text.Equals("")) { string str1 = table["str1"].ToString(); MessageBox.Show(str1, "Tip"); } //实力窗口对象 SemTestForms sTextForms = new SemTestForms(); //判断窗口对话框返回值 sTextForms.ShowDialog(); } /// /// 窗口加载 /// /// /// private void OTSSystemManagerForms_Load(object sender, EventArgs e) { //获取下拉选项 ReadXMLFile(); //获取选择版本信息 GetBrukerController(); string message = string.Empty; SaveSelectVersionInfo(); //添加事件 CmbSEMController.SelectedIndexChanged += new EventHandler(CmbSEMController_SelectedIndexChanged); CmbEDSController.SelectedIndexChanged += new EventHandler(CmbEDSController_SelectedIndexChanged); try { tabHardwareSet.Parent = tabControl1; //} } catch (Exception) { } string str = OTSSysMgrTools.Language.ReadDefaultLanguage(); switch (str) { case "ZH": rdb_ch.Checked = true; rdb_en.Checked = false; break; case "EN": rdb_ch.Checked = false; rdb_en.Checked = true; break; } } /// /// 将所有参数保存 /// /// /// private void btnDone_Click(object sender, EventArgs e) { try { //节点名称与节点参数值 string Name = string.Empty; string Value = string.Empty; //判断本地中是否存在文件路径 if (ExistsFile(xmlFilePath)) { //遍历tabHardwareSet标签中所有的ComboBox控件 foreach (Control control in this.tabHardwareSet.Controls) { //判断类型名称 if (control is ComboBox) { //获取节点名称与节点参数值 Name = (control as ComboBox).Name.Substring(2); Value = (control as ComboBox).Text; SaveSetting(Name, Value); } } } else { //如果文件不存在,则创建文件 CreateFile(xmlFilePath); } //关闭窗口 this.Close(); } catch (Exception ex) { log.Error(ex.Message.ToString()); } } private void btnEDSTest_Click(object sender, EventArgs e) { //实例窗口对象 ControllerSettingForm sTextForms = new ControllerSettingForm(); try { sTextForms.Show(); } catch (InvalidOperationException ex) { log.Error("OTSSystemManagerForms_btnEDSTest_Click-错误日志:"+ ex.ToString()); } } private void SaveSEMAndEDSController() { string SEMName = string.Empty; if (CmbSEMController.SelectedItem != null) { SEMName = CmbSEMController.SelectedItem.ToString(); } string EDSName = string.Empty; if (CmbEDSController.SelectedItem != null) { EDSName = CmbEDSController.SelectedItem.ToString(); } if (SEMName == "Oxford" && EDSName == "Oxford") { rbEsprit19.Visible = false; rbEsprit21.Visible = false; label1.Visible = false; } else { rbEsprit19.Visible = true; rbEsprit21.Visible = true; label1.Visible = true; } try { bool result = WriteXMLFile(SEMName, EDSName); } catch (Exception ex) { log.Error("SaveSelectVersionInfo()--错误日志:" + ex.ToString() + ""); } } #region 获取与设置 选择版本号 private void GetSelectVersionInfo() { } private void SaveSelectVersionInfo() { string selectVersion = string.Empty; if (rbEsprit19.Checked) { selectVersion = rbEsprit19.Text; } if (rbEsprit21.Checked) { selectVersion = rbEsprit21.Text; } try { if (!selectVersion.Trim().Equals("")) { bool result = WriteXMLFileVersion(selectVersion); } } catch (Exception ex) { log.Error("OTSSystemManagerForms_SaveSelectVersionInfo()--错误日志:" + ex.ToString() + ""); } } #endregion private void ReadXMLFile() { string xmlSEMName = string.Empty; string xmlEDSName = string.Empty; bool result = XMLOperationClass.ReadXMLFile(XMLFileName, ref xmlSEMName, ref xmlEDSName); if (result) { if (xmlSEMName != "") { CmbSEMController.SelectedItem = xmlSEMName.ToString(); } if (xmlEDSName != "") { CmbEDSController.SelectedItem = xmlEDSName.ToString(); } else { try { CmbSEMController.SelectedItem = CmbSEMController.Items[0].ToString(); //"Bruker"; CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();// "Genesis"; } catch (Exception) { throw; } } } else { CmbSEMController.SelectedItem = CmbSEMController.Items[0].ToString(); CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString(); } } private bool WriteXMLFile(string xmlSEMName, string xmlEDSName) { try { return XMLOperationClass.WriteXMLFile(XMLFileName, xmlSEMName, xmlEDSName); } catch (Exception) { return false; } } private bool WriteXMLFileVersion(string selectVersion) { try { return XMLOperationClass.WriteXMLFileVersion(DLLXMLFileName, selectVersion); } catch (Exception) { return false; } } private void GetSEMAndEDSController() { string xmlNodeSEM = XMLOperationClass.GetXMLInformations("SEMName"); string xmlNodeEDS = XMLOperationClass.GetXMLInformations("EDSName"); if (xmlNodeSEM != null) { CmbSEMController.SelectedItem = xmlNodeSEM.ToString(); } if (xmlNodeEDS != null) { CmbEDSController.SelectedItem = xmlNodeEDS.ToString(); } } private void GetBrukerController() { try { //获取XML中 选择版本的信息 string selecVersion = string.Empty; bool result = XMLOperationClass.ReadXMLFileVersion(DLLXMLFileName, ref selecVersion); if (result) { if (selecVersion.Equals(rbEsprit19.Text)) { rbEsprit19.Checked = true; } else if (selecVersion.Equals(rbEsprit21.Text)) { rbEsprit21.Checked = true; } else { rbEsprit19.Checked = false; rbEsprit21.Checked = false; } } else { rbEsprit19.Checked = false; rbEsprit21.Checked = true; } } catch (Exception) { } } private void GetRegistData() { try { string SEMRegistData = string.Empty; string EDSRegistData = string.Empty; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE", true); RegistryKey aimdir = software.OpenSubKey(SubKey, true); if (aimdir != null) { if (IsRegeditExit("SEMName")) { SEMRegistData = aimdir.GetValue("SEMName").ToString(); CmbSEMController.SelectedItem = SEMRegistData.ToString(); } if (IsRegeditExit("EDSName")) { EDSRegistData = aimdir.GetValue("EDSName").ToString(); CmbEDSController.SelectedItem = EDSRegistData.ToString(); } } } catch (Exception) { //MessageBox.Show("读取失败,请以管理员身份运行!"); return; } } private bool WTRegedit(string name, string tovalue) { try { RegistryKey hklm = Registry.LocalMachine; RegistryKey software = hklm.OpenSubKey("SOFTWARE", true); RegistryKey aimdir = software.CreateSubKey(SubKey); aimdir.SetValue(name, tovalue); return true; } catch (Exception) { //MessageBox.Show("写入失败,请以管理员身份运行!"); return false; } } private bool IsRegeditExit(string name) { try { bool _exit = false; string[] valueNames; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE", true); RegistryKey aimdir = software.OpenSubKey(SubKey, true); valueNames = aimdir.GetValueNames(); foreach (string keyName in valueNames) { if (keyName == name) { _exit = true; return _exit; } } return _exit; } catch (Exception ex) { MessageBox.Show("IsRegeditExit:" + ex.ToString()); return false; } } #endregion #region 判断文件路径 /// /// 判断文件路径 /// /// /// public bool CreateFile(string path) { Directory.CreateDirectory(path); return false; } #endregion #region 判断文件是否存在 /// /// 判断文件是否存在 /// /// 文件路径 /// public bool ExistsFile(string path) { try { if (File.Exists(path)) { return true; } return false; } catch (Exception ex) { //记录日志文件 log.Error(ex.Message.ToString()); return false; } } #endregion #region 加载时默认设置版本信息 /// /// 加载时默认设置版本信息 /// public void OnLoadSetVersionInfo() { //版本信息 string EspritName = string.Empty; if (rbEsprit19.Checked) { } else if (rbEsprit21.Checked) { } } #endregion private void btnRequest_Click(object sender, EventArgs e) { } private void OTSSystemManagerForms_FormClosing(object sender, FormClosingEventArgs e) { } private void lnklab_about_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { //打开关于窗体,显示版本号等信息 About a = new About(); a.ShowDialog(); } private void rdb_ch_CheckedChanged(object sender, EventArgs e) { if (rdb_ch.Checked == true) { rdb_en.Checked = false; WriteDefaultLanguage("ZH"); //国际化 OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); } else { rdb_en.Checked = true; WriteDefaultLanguage("EN"); //国际化 OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); } } private void rdb_en_CheckedChanged(object sender, EventArgs e) { if (rdb_en.Checked == true) { rdb_ch.Checked = false; WriteDefaultLanguage("EN"); //国际化 OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); } else { rdb_ch.Checked = true; WriteDefaultLanguage("ZH"); //国际化 OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); } } private void rdb_ch_Click(object sender, EventArgs e) { rdb_en.Checked = false; WriteDefaultLanguage("ZH"); //国际化 OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); } private void rdb_en_Click(object sender, EventArgs e) { rdb_ch.Checked = false; WriteDefaultLanguage("EN"); //国际化 OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); } private void CmbSEMController_SelectedIndexChanged(object sender, EventArgs e) { SaveSEMAndEDSController(); } private void CmbEDSController_SelectedIndexChanged(object sender, EventArgs e) { SaveSEMAndEDSController(); } private void rbEsprit19_CheckedChanged(object sender, EventArgs e) { if (rbEsprit19.Checked) { //记录版本 SaveSelectVersionInfo(); } } private void rbEsprit21_CheckedChanged(object sender, EventArgs e) { if (rbEsprit21.Checked) { //记录版本 SaveSelectVersionInfo(); } } private void btnRemove_Click(object sender, EventArgs e) { string message11 = table["message11"].ToString(); //1.删除License文件 if (MessageBox.Show(message11, "Tip",MessageBoxButtons.YesNo,MessageBoxIcon.Information)== DialogResult.Yes) { //设置XML节点信息 SaveSetting("ComupterName", ""); SaveSetting("HardwareID", ""); SaveSetting("OTSProduct", ""); SaveSetting("PassType", ""); SaveSetting("ExpireDate", ""); tabHardwareSet.Parent = null; } } //修改默认语言 public static void WriteDefaultLanguage(string lang) { DataSet ds = new DataSet(); ds.ReadXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml"); DataTable dt = ds.Tables["Language"]; dt.Rows[0]["DefaultLanguage"] = lang; ds.AcceptChanges(); ds.WriteXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml"); } } }