/*
--创建人:韩维柏
--创建日期: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");
}
}
}