OTSSystemManagerForms.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. /*
  2. --创建人:韩维柏
  3. --创建日期:2017-06-20
  4. --修改人:
  5. --修改日期:
  6. --说明:密钥配置、SEM设置
  7. */
  8. using System;
  9. using System.Data;
  10. using System.IO;
  11. using System.Windows.Forms;
  12. using Microsoft.Win32;
  13. using System.Collections;
  14. namespace OTSSysMgrApp
  15. {
  16. public partial class OTSSystemManagerForms : Form
  17. {
  18. #region 全部变量声明
  19. //获取XML 路径
  20. static string xmlFilePath = string.Empty;// System.Configuration.ConfigurationManager.ConnectionStrings["XMLFilePath"].ConnectionString;
  21. //日志路径
  22. static string XMLFileName = string.Empty;//System.Configuration.ConfigurationManager.ConnectionStrings["XMLFileName"].ConnectionString;
  23. //设置日志路径
  24. static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
  25. string SubKey = "OTSDevName";
  26. //国际化
  27. OTSSysMgrTools.Language lan;
  28. //国际化存储信息
  29. Hashtable table;
  30. #endregion
  31. #region 构造函数
  32. public OTSSystemManagerForms()
  33. {
  34. try
  35. {
  36. //获取XML 路径
  37. xmlFilePath = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFilePath"].ConnectionString;
  38. XMLFileName = System.Configuration.ConfigurationManager.ConnectionStrings["XMLFileName"].ConnectionString;
  39. InitializeComponent();
  40. }
  41. catch (Exception ex)
  42. {
  43. log.Error("OTSSystemManagerForms_OTSSystemManagerForms()--错误信息:"+ex.ToString());
  44. }
  45. //国际化
  46. lan = new OTSSysMgrTools.Language(this);
  47. table = lan.GetNameTable(this.Name);
  48. rdb_ch.Checked = true;
  49. }
  50. #endregion
  51. #region 保存设置
  52. /// <summary>
  53. /// 保存设置
  54. /// </summary>
  55. /// <param name="Name">节点名称</param>
  56. /// <param name="Value">节点参数值</param>
  57. public void SaveSetting(string Name, string Value)
  58. {
  59. try
  60. {
  61. //判断XML文件中是否存在
  62. if (!XMLOperationClass.ExistsXmlInfo(Name))
  63. {
  64. //调用添加XML节点功能
  65. XMLOperationClass.AddXmlInfo(Name, Value);
  66. }
  67. else
  68. {
  69. //调用修改XML节点功能
  70. XMLOperationClass.EditXmlInfo(Name, Value);
  71. }
  72. }
  73. catch (Exception ex)
  74. {
  75. //记录日志信息
  76. log.Error(ex.Message.ToString());
  77. }
  78. }
  79. #endregion
  80. #region 修改设置
  81. public void EditSetting(string Name, string Value)
  82. {
  83. try
  84. {
  85. //调用修改XML节点功能
  86. XMLOperationClass.EditXmlInfo(Name, Value);
  87. }
  88. catch (Exception ex)
  89. {
  90. //记录日志信息
  91. log.Error(ex.Message.ToString());
  92. }
  93. }
  94. #endregion
  95. #region 控件事件汇总
  96. /// <summary>
  97. /// 打开SEM设置
  98. /// </summary>
  99. /// <param name="sender"></param>
  100. /// <param name="e"></param>
  101. private void btnSEMTest_Click(object sender, EventArgs e)
  102. {
  103. if (CmbSEMController.Text.Equals(""))
  104. {
  105. string str1 = table["str1"].ToString();
  106. MessageBox.Show(str1, "Tip");
  107. }
  108. //实力窗口对象
  109. SemTestForms sTextForms = new SemTestForms();
  110. //判断窗口对话框返回值
  111. sTextForms.ShowDialog();
  112. }
  113. /// <summary>
  114. /// 窗口加载
  115. /// </summary>
  116. /// <param name="sender"></param>
  117. /// <param name="e"></param>
  118. private void OTSSystemManagerForms_Load(object sender, EventArgs e)
  119. {
  120. //获取下拉选项
  121. ReadXMLFile();
  122. string message = string.Empty;
  123. //添加事件
  124. CmbSEMController.SelectedIndexChanged += new EventHandler(CmbSEMController_SelectedIndexChanged);
  125. CmbEDSController.SelectedIndexChanged += new EventHandler(CmbEDSController_SelectedIndexChanged);
  126. try
  127. {
  128. tabHardwareSet.Parent = tabControl1;
  129. //}
  130. }
  131. catch (Exception)
  132. {
  133. }
  134. string str = OTSSysMgrTools.Language.ReadDefaultLanguage();
  135. switch (str)
  136. {
  137. case "ZH":
  138. rdb_ch.Checked = true;
  139. rdb_en.Checked = false;
  140. break;
  141. case "EN":
  142. rdb_ch.Checked = false;
  143. rdb_en.Checked = true;
  144. break;
  145. }
  146. }
  147. /// <summary>
  148. /// 将所有参数保存
  149. /// </summary>
  150. /// <param name="sender"></param>
  151. /// <param name="e"></param>
  152. private void btnDone_Click(object sender, EventArgs e)
  153. {
  154. try
  155. {
  156. //节点名称与节点参数值
  157. string Name = string.Empty;
  158. string Value = string.Empty;
  159. //判断本地中是否存在文件路径
  160. if (ExistsFile(xmlFilePath))
  161. {
  162. //遍历tabHardwareSet标签中所有的ComboBox控件
  163. foreach (Control control in this.tabHardwareSet.Controls)
  164. {
  165. //判断类型名称
  166. if (control is ComboBox)
  167. {
  168. //获取节点名称与节点参数值
  169. Name = (control as ComboBox).Name.Substring(2);
  170. Value = (control as ComboBox).Text;
  171. SaveSetting(Name, Value);
  172. }
  173. }
  174. }
  175. else
  176. {
  177. //如果文件不存在,则创建文件
  178. CreateFile(xmlFilePath);
  179. }
  180. //关闭窗口
  181. this.Close();
  182. }
  183. catch (Exception ex)
  184. {
  185. log.Error(ex.Message.ToString());
  186. }
  187. }
  188. private void btnEDSTest_Click(object sender, EventArgs e)
  189. {
  190. //实例窗口对象
  191. ControllerSettingForm sTextForms = new ControllerSettingForm();
  192. try
  193. {
  194. sTextForms.Show();
  195. }
  196. catch (InvalidOperationException ex)
  197. {
  198. log.Error("OTSSystemManagerForms_btnEDSTest_Click-错误日志:"+ ex.ToString());
  199. }
  200. }
  201. private void SaveSEMAndEDSController()
  202. {
  203. string SEMName = string.Empty;
  204. if (CmbSEMController.SelectedItem != null)
  205. {
  206. SEMName = CmbSEMController.SelectedItem.ToString();
  207. }
  208. string EDSName = string.Empty;
  209. if (CmbEDSController.SelectedItem != null)
  210. {
  211. EDSName = CmbEDSController.SelectedItem.ToString();
  212. }
  213. try
  214. {
  215. bool result = WriteXMLFile(SEMName, EDSName);
  216. }
  217. catch (Exception ex)
  218. {
  219. log.Error("SaveSelectVersionInfo()--错误日志:" + ex.ToString() + "");
  220. }
  221. }
  222. private void ReadXMLFile()
  223. {
  224. string xmlSEMName = string.Empty;
  225. string xmlEDSName = string.Empty;
  226. bool result = XMLOperationClass.ReadXMLFile(XMLFileName, ref xmlSEMName, ref xmlEDSName);
  227. if (result)
  228. {
  229. if (xmlSEMName != "")
  230. {
  231. CmbSEMController.SelectedItem = xmlSEMName.ToString();
  232. }
  233. if (xmlEDSName != "")
  234. {
  235. CmbEDSController.SelectedItem = xmlEDSName.ToString();
  236. }
  237. else
  238. {
  239. try
  240. {
  241. CmbSEMController.SelectedItem = CmbSEMController.Items[0].ToString(); //"Bruker";
  242. CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();// "Genesis";
  243. }
  244. catch (Exception)
  245. {
  246. throw;
  247. }
  248. }
  249. }
  250. else
  251. {
  252. CmbSEMController.SelectedItem = CmbSEMController.Items[0].ToString();
  253. CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();
  254. }
  255. }
  256. private bool WriteXMLFile(string xmlSEMName, string xmlEDSName)
  257. {
  258. try
  259. {
  260. return XMLOperationClass.WriteXMLFile(XMLFileName, xmlSEMName, xmlEDSName);
  261. }
  262. catch (Exception)
  263. {
  264. return false;
  265. }
  266. }
  267. private void GetSEMAndEDSController()
  268. {
  269. string xmlNodeSEM = XMLOperationClass.GetXMLInformations("SEMName");
  270. string xmlNodeEDS = XMLOperationClass.GetXMLInformations("EDSName");
  271. if (xmlNodeSEM != null)
  272. {
  273. CmbSEMController.SelectedItem = xmlNodeSEM.ToString();
  274. }
  275. if (xmlNodeEDS != null)
  276. {
  277. CmbEDSController.SelectedItem = xmlNodeEDS.ToString();
  278. }
  279. }
  280. private void GetRegistData()
  281. {
  282. try
  283. {
  284. string SEMRegistData = string.Empty;
  285. string EDSRegistData = string.Empty;
  286. RegistryKey hkml = Registry.LocalMachine;
  287. RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
  288. RegistryKey aimdir = software.OpenSubKey(SubKey, true);
  289. if (aimdir != null)
  290. {
  291. if (IsRegeditExit("SEMName"))
  292. {
  293. SEMRegistData = aimdir.GetValue("SEMName").ToString();
  294. CmbSEMController.SelectedItem = SEMRegistData.ToString();
  295. }
  296. if (IsRegeditExit("EDSName"))
  297. {
  298. EDSRegistData = aimdir.GetValue("EDSName").ToString();
  299. CmbEDSController.SelectedItem = EDSRegistData.ToString();
  300. }
  301. }
  302. }
  303. catch (Exception)
  304. {
  305. //MessageBox.Show("读取失败,请以管理员身份运行!");
  306. return;
  307. }
  308. }
  309. private bool WTRegedit(string name, string tovalue)
  310. {
  311. try
  312. {
  313. RegistryKey hklm = Registry.LocalMachine;
  314. RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
  315. RegistryKey aimdir = software.CreateSubKey(SubKey);
  316. aimdir.SetValue(name, tovalue);
  317. return true;
  318. }
  319. catch (Exception)
  320. {
  321. //MessageBox.Show("写入失败,请以管理员身份运行!");
  322. return false;
  323. }
  324. }
  325. private bool IsRegeditExit(string name)
  326. {
  327. try
  328. {
  329. bool _exit = false;
  330. string[] valueNames;
  331. RegistryKey hkml = Registry.LocalMachine;
  332. RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
  333. RegistryKey aimdir = software.OpenSubKey(SubKey, true);
  334. valueNames = aimdir.GetValueNames();
  335. foreach (string keyName in valueNames)
  336. {
  337. if (keyName == name)
  338. {
  339. _exit = true;
  340. return _exit;
  341. }
  342. }
  343. return _exit;
  344. }
  345. catch (Exception ex)
  346. {
  347. MessageBox.Show("IsRegeditExit:" + ex.ToString());
  348. return false;
  349. }
  350. }
  351. #endregion
  352. #region 判断文件路径
  353. /// <summary>
  354. /// 判断文件路径
  355. /// </summary>
  356. /// <param name="path"></param>
  357. /// <returns></returns>
  358. public bool CreateFile(string path)
  359. {
  360. Directory.CreateDirectory(path);
  361. return false;
  362. }
  363. #endregion
  364. #region 判断文件是否存在
  365. /// <summary>
  366. /// 判断文件是否存在
  367. /// </summary>
  368. /// <param name="path">文件路径</param>
  369. /// <returns></returns>
  370. public bool ExistsFile(string path)
  371. {
  372. try
  373. {
  374. if (File.Exists(path))
  375. {
  376. return true;
  377. }
  378. return false;
  379. }
  380. catch (Exception ex)
  381. {
  382. //记录日志文件
  383. log.Error(ex.Message.ToString());
  384. return false;
  385. }
  386. }
  387. #endregion
  388. private void OTSSystemManagerForms_FormClosing(object sender, FormClosingEventArgs e)
  389. {
  390. }
  391. private void lnklab_about_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  392. {
  393. //打开关于窗体,显示版本号等信息
  394. About a = new About();
  395. a.ShowDialog();
  396. }
  397. private void rdb_ch_CheckedChanged(object sender, EventArgs e)
  398. {
  399. if (rdb_ch.Checked == true)
  400. {
  401. rdb_en.Checked = false;
  402. WriteDefaultLanguage("ZH");
  403. //国际化
  404. OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this);
  405. }
  406. else
  407. {
  408. rdb_en.Checked = true;
  409. WriteDefaultLanguage("EN");
  410. //国际化
  411. OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this);
  412. }
  413. }
  414. private void rdb_en_CheckedChanged(object sender, EventArgs e)
  415. {
  416. if (rdb_en.Checked == true)
  417. {
  418. rdb_ch.Checked = false;
  419. WriteDefaultLanguage("EN");
  420. //国际化
  421. OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this);
  422. }
  423. else
  424. {
  425. rdb_ch.Checked = true;
  426. WriteDefaultLanguage("ZH");
  427. //国际化
  428. OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this);
  429. }
  430. }
  431. private void rdb_ch_Click(object sender, EventArgs e)
  432. {
  433. rdb_en.Checked = false;
  434. WriteDefaultLanguage("ZH");
  435. //国际化
  436. OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this);
  437. }
  438. private void rdb_en_Click(object sender, EventArgs e)
  439. {
  440. rdb_ch.Checked = false;
  441. WriteDefaultLanguage("EN");
  442. //国际化
  443. OTSSysMgrTools.Language lan1 = new OTSSysMgrTools.Language(this);
  444. }
  445. private void CmbSEMController_SelectedIndexChanged(object sender, EventArgs e)
  446. {
  447. SaveSEMAndEDSController();
  448. }
  449. private void CmbEDSController_SelectedIndexChanged(object sender, EventArgs e)
  450. {
  451. SaveSEMAndEDSController();
  452. }
  453. private void btnRemove_Click(object sender, EventArgs e)
  454. {
  455. string message11 = table["message11"].ToString();
  456. //1.删除License文件
  457. if (MessageBox.Show(message11, "Tip",MessageBoxButtons.YesNo,MessageBoxIcon.Information)== DialogResult.Yes)
  458. {
  459. //设置XML节点信息
  460. SaveSetting("ComupterName", "");
  461. SaveSetting("HardwareID", "");
  462. SaveSetting("OTSProduct", "");
  463. SaveSetting("PassType", "");
  464. SaveSetting("ExpireDate", "");
  465. tabHardwareSet.Parent = null;
  466. }
  467. }
  468. //修改默认语言
  469. public static void WriteDefaultLanguage(string lang)
  470. {
  471. DataSet ds = new DataSet();
  472. ds.ReadXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml");
  473. DataTable dt = ds.Tables["Language"];
  474. dt.Rows[0]["DefaultLanguage"] = lang;
  475. ds.AcceptChanges();
  476. ds.WriteXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml");
  477. }
  478. }
  479. }