/* --创建人:韩维柏 --创建日期: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 LogPath = string.Empty;//System.Configuration.ConfigurationManager.ConnectionStrings["LogPath"].ConnectionString; static string LogAppPath = string.Empty;//System.Configuration.ConfigurationManager.ConnectionStrings["LogAppPath"].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; static string message1, message2, message3, message4 ,message5 , message6 ,message7 , message8, message9, message10; #endregion #region 构造函数 public OTSSystemManagerForms() { try { //获取XML 路径 xmlFilePath = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFilePath"].ConnectionString; //日志路径 LogPath = System.Configuration.ConfigurationManager.ConnectionStrings["LogPath"].ConnectionString; LogAppPath = System.Configuration.ConfigurationManager.ConnectionStrings["LogAppPath"].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); message1 = table["message1"].ToString(); message2 = table["message2"].ToString(); message3 = table["message3"].ToString(); message4 = table["message4"].ToString(); message5 = table["message5"].ToString(); message6 = table["message6"].ToString(); message7 = table["message7"].ToString(); message8 = table["message8"].ToString(); message9 = table["message9"].ToString(); message10 = table["message10"].ToString(); 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 { //判断是否注册与日期是否有效 //if (!IsValidLicense(ref message)) //{ // tabHardwareSet.Parent = null; //} //else //{ //获取已存在的注册信息 //tbLComupterName.Text = GetLicenseInfo("ComupterName"); //tbLHardwareID.Text = GetLicenseInfo("HardwareID"); //tbOTSProduct.Text = GetLicenseInfo("OTSProduct"); //tbPassType.Text = GetLicenseInfo("PassType"); //tbExpireDate.Text = Convert.ToDateTime(GetLicenseInfo("ExpireDate")).ToString("yyyy-MM-dd"); //显示硬件Tab菜单 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); } } //遍历tabHardwareSet标签中所有的ComboBox控件 //foreach (Control control in this.tabLicenseSet.Controls) //{ // //判断类型名称 // if (control is ComboBox) // { // //获取节点名称与节点参数值 // Name = (control as ComboBox).Name.Substring(2); // Value = (control as ComboBox).Text; // SaveSetting(Name, Value); // } // if (control is TextBox) // { // //获取节点名称与节点参数值 // Name = (control as TextBox).Name.Substring(2); // Value = (control as TextBox).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) { } #region 判断当前License信息是否正确 //public static bool IsValidLicense(ref string MessageInfo) //{ // if (fun == null) // { // fun = new COTSLicMgrClr(); // } // if (otsInfoClr == null) // { // otsInfoClr = new COTSLicenseInfoClr(); // } // //if (cfunClass == null) // //{ // // cfunClass = new NSLogFunExport.CFunExportClass(); // //} // //实例化C++对象 从选择文件对话框中 选择Lsk文件 // //1.检查通行证是否合法 // //计算机名称 // string ComupterName = GetLicenseInfo("ComupterName"); // //硬件ID // string HardwareID = GetLicenseInfo("HardwareID"); // //OTS产品 // int OTSProduct = Convert.ToInt32(GetLicenseInfo("OTSProduct") == "OTSIncA" ? 0 : 1); // //通行证类型 // int PassType = Convert.ToInt32(GetLicenseInfo("PassType") == "Online" ? 0 : 1); // //有效期 // DateTime ExpireDate = Convert.ToDateTime(GetLicenseInfo("ExpireDate")!=""? GetLicenseInfo("ExpireDate"):DateTime.Now.ToString()); // //判断查询参数 // otsInfoClr.SetComputerNickName(ComupterName); // otsInfoClr.SetMachineId(HardwareID); // otsInfoClr.SetPackId(OTSProduct); // otsInfoClr.SetLicType(PassType); // otsInfoClr.SetExpireDate(ExpireDate); // int nResult = 0; // bool bResult = fun.IsValidLicense(OTSProduct, otsInfoClr, ref nResult, true, true); // if (bResult) // { // //2.将通行证写入指定的路径 // bool CreateResult = fun.CreateLicenseFile(otsInfoClr); // if (CreateResult) // { // return true; // } // return false; // } // else // { // MessageInfo = message1; // switch (nResult) // { // case 0: // MessageInfo += message2; // break; // case 1: // MessageInfo += message3; // break; // case 2: // MessageInfo += message4; // break; // case 3: // MessageInfo += message5; // break; // case 4: // MessageInfo += message6; // break; // case 5: // MessageInfo += message7; // break; // case 6: // MessageInfo += message8; // break; // } // return false; // } //} #endregion #region 获取License参数 /// /// 获取并显示 Licanse参数 /// //public void OpenLicenseDialog() //{ // try // { // fun = new OTSINTERFACE.COTSLicMgrClr(); // string str = fun.GetMachineId(); // //获取电脑ID // string MachineId = fun.GetMachineId(); // //实例化C++对象 // otsInfoClr = new OTSINTERFACE.COTSLicenseInfoClr(); // //设置电脑ID // otsInfoClr.SetMachineId(MachineId); // bool a_bAdd = false; // bool a_bRequest = true; // //弹出通行证窗体 // bool result = fun.ShowEditDialogExport(otsInfoClr, a_bAdd, a_bRequest); // if (result) // { // return; // } // } // catch (Exception) // { // } // finally // { // fun.FreePointer(); // otsInfoClr.FreePointer(); // } //} /// /// 获取电脑名称 /// public string GetComupterName() { return ""; } /// /// 获取硬件ID /// public string GetHardwareID() { return ""; } /// /// 项目 /// public string GetOTSProduct() { //OTSIncA=0 //OtsPartA=1 return ""; } /// /// 通行证种类 /// public string GetPassType() { //Online = 0, //Offline = 1, return ""; } /// /// 时间 /// public string GetExpireDate() { return ""; } /// /// 显示通行证信息 /// public void ShowLicenseInfo() { } #endregion 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(); } } /// /// 判断是否注册与日期是否有效 /// /// public static bool ExistsLicenseInfo(ref string message) { try { //计算机名称 string tbLComupterName = GetLicenseInfo("ComupterName"); //硬件ID string tbLHardwareID = GetLicenseInfo("HardwareID"); //OTS产品 string tbOTSProduct = GetLicenseInfo("OTSProduct"); //通行证类型 string tbPassType = GetLicenseInfo("PassType"); //有效期 string tbExpireDate = GetLicenseInfo("ExpireDate"); if (string.IsNullOrEmpty(tbLComupterName) || string.IsNullOrEmpty(tbLHardwareID) || string.IsNullOrEmpty(tbOTSProduct) || string.IsNullOrEmpty(tbPassType) || string.IsNullOrEmpty(tbExpireDate)) { message = message9; return false; } else { try { string ExpireDate = Convert.ToDateTime(tbExpireDate).ToString("yyyy-MM-dd 23:59:59"); DateTime dtExpireDate = Convert.ToDateTime(ExpireDate); DateTime dtCurrent = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); if (dtCurrent > dtExpireDate) { message = message10; return false; } } catch (Exception ex) { log.Error("OTSSystemManagerForms_ExistsLicenseInfo:" + ex.ToString() + ""); } } } catch (Exception ex) { log.Error("OTSSystemManagerForms_ExistsLicenseInfo:" + ex.ToString() + ""); } return true; } public static string GetLicenseInfo(string NodeName) { try { return XMLOperationClass.GetXMLInformations(NodeName); } catch (Exception ex) { log.Error("OTSSystemManagerForms_GetLicenseInfo:" + ex.ToString() + ""); return ""; } } 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", ""); //清空文本框信息 //tbLComupterName.Text = string.Empty; //tbLHardwareID.Text = string.Empty; //tbOTSProduct.Text = string.Empty; //tbPassType.Text = string.Empty; //tbExpireDate.Text = string.Empty; //显示硬件Tab菜单 tabHardwareSet.Parent = null; } } //private void cbbLanguage_SelectedIndexChanged(object sender, EventArgs e) //{ // //获取combobox的值 // string Global = cbbLanguage.SelectedItem.ToString(); // Global = Global.Trim(); // if (Global.IndexOf("-") == 0) // { // return; // } // else // { // Global = Global.Substring(Global.IndexOf("[") + 1, 2); // } // WriteDefaultLanguage(Global); // //国际化 // OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this); //} //修改默认语言 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"); } } }