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