OTSSystemManagerForms.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  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. 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 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 = 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. if (!WriteXMLFile(SEMName, EDSName))
  216. {
  217. log.Error("SaveSelectVersionInfo()--错误日志:请检查HardwareConfig.xml确保Value为值标签!");
  218. }
  219. }
  220. catch (Exception ex)
  221. {
  222. log.Error("SaveSelectVersionInfo()--错误日志:" + ex.ToString() + "");
  223. }
  224. }
  225. private void ReadXMLFile()
  226. {
  227. string xmlSEMName = string.Empty;
  228. string xmlEDSName = string.Empty;
  229. bool result = XMLOperationClass.ReadXMLFile(XMLFileName, ref xmlSEMName, ref xmlEDSName);
  230. if (result)
  231. {
  232. if (xmlSEMName != "")
  233. {
  234. CmbSEMController.SelectedItem = xmlSEMName.ToString();
  235. }
  236. if (xmlEDSName != "")
  237. {
  238. CmbEDSController.SelectedItem = xmlEDSName.ToString();
  239. }
  240. else
  241. {
  242. try
  243. {
  244. CmbSEMController.SelectedItem = CmbSEMController.Items[0].ToString(); //"Bruker";
  245. CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();// "Genesis";
  246. }
  247. catch (Exception)
  248. {
  249. throw;
  250. }
  251. }
  252. }
  253. else
  254. {
  255. CmbSEMController.SelectedItem = CmbSEMController.Items[0].ToString();
  256. CmbEDSController.SelectedItem = CmbEDSController.Items[0].ToString();
  257. }
  258. }
  259. private bool WriteXMLFile(string xmlSEMName, string xmlEDSName)
  260. {
  261. try
  262. {
  263. return XMLOperationClass.WriteXMLFile(XMLFileName, xmlSEMName, xmlEDSName);
  264. }
  265. catch (Exception)
  266. {
  267. return false;
  268. }
  269. }
  270. private void GetSEMAndEDSController()
  271. {
  272. string xmlNodeSEM = XMLOperationClass.GetXMLInformations("SEMName");
  273. string xmlNodeEDS = XMLOperationClass.GetXMLInformations("EDSName");
  274. if (xmlNodeSEM != null)
  275. {
  276. CmbSEMController.SelectedItem = xmlNodeSEM.ToString();
  277. }
  278. if (xmlNodeEDS != null)
  279. {
  280. CmbEDSController.SelectedItem = xmlNodeEDS.ToString();
  281. }
  282. }
  283. private void GetRegistData()
  284. {
  285. try
  286. {
  287. string SEMRegistData = string.Empty;
  288. string EDSRegistData = string.Empty;
  289. RegistryKey hkml = Registry.LocalMachine;
  290. RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
  291. RegistryKey aimdir = software.OpenSubKey(SubKey, true);
  292. if (aimdir != null)
  293. {
  294. if (IsRegeditExit("SEMName"))
  295. {
  296. SEMRegistData = aimdir.GetValue("SEMName").ToString();
  297. CmbSEMController.SelectedItem = SEMRegistData.ToString();
  298. }
  299. if (IsRegeditExit("EDSName"))
  300. {
  301. EDSRegistData = aimdir.GetValue("EDSName").ToString();
  302. CmbEDSController.SelectedItem = EDSRegistData.ToString();
  303. }
  304. }
  305. }
  306. catch (Exception)
  307. {
  308. //MessageBox.Show("读取失败,请以管理员身份运行!");
  309. return;
  310. }
  311. }
  312. private bool WTRegedit(string name, string tovalue)
  313. {
  314. try
  315. {
  316. RegistryKey hklm = Registry.LocalMachine;
  317. RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
  318. RegistryKey aimdir = software.CreateSubKey(SubKey);
  319. aimdir.SetValue(name, tovalue);
  320. return true;
  321. }
  322. catch (Exception)
  323. {
  324. //MessageBox.Show("写入失败,请以管理员身份运行!");
  325. return false;
  326. }
  327. }
  328. private bool IsRegeditExit(string name)
  329. {
  330. try
  331. {
  332. bool _exit = false;
  333. string[] valueNames;
  334. RegistryKey hkml = Registry.LocalMachine;
  335. RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
  336. RegistryKey aimdir = software.OpenSubKey(SubKey, true);
  337. valueNames = aimdir.GetValueNames();
  338. foreach (string keyName in valueNames)
  339. {
  340. if (keyName == name)
  341. {
  342. _exit = true;
  343. return _exit;
  344. }
  345. }
  346. return _exit;
  347. }
  348. catch (Exception ex)
  349. {
  350. MessageBox.Show("IsRegeditExit:" + ex.ToString());
  351. return false;
  352. }
  353. }
  354. #endregion
  355. #region 判断文件路径
  356. /// <summary>
  357. /// 判断文件路径
  358. /// </summary>
  359. /// <param name="path"></param>
  360. /// <returns></returns>
  361. public bool CreateFile(string path)
  362. {
  363. Directory.CreateDirectory(path);
  364. return false;
  365. }
  366. #endregion
  367. #region 判断文件是否存在
  368. /// <summary>
  369. /// 判断文件是否存在
  370. /// </summary>
  371. /// <param name="path">文件路径</param>
  372. /// <returns></returns>
  373. public bool ExistsFile(string path)
  374. {
  375. try
  376. {
  377. if (File.Exists(path))
  378. {
  379. return true;
  380. }
  381. return false;
  382. }
  383. catch (Exception ex)
  384. {
  385. //记录日志文件
  386. log.Error(ex.Message.ToString());
  387. return false;
  388. }
  389. }
  390. #endregion
  391. private void OTSSystemManagerForms_FormClosing(object sender, FormClosingEventArgs e)
  392. {
  393. }
  394. private void lnklab_about_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  395. {
  396. //打开关于窗体,显示版本号等信息
  397. About a = new About();
  398. a.ShowDialog();
  399. }
  400. private void rdb_ch_CheckedChanged(object sender, EventArgs e)
  401. {
  402. if (rdb_ch.Checked == true)
  403. {
  404. rdb_en.Checked = false;
  405. WriteDefaultLanguage("ZH");
  406. //国际化
  407. Language lan1 = new Language(this);
  408. }
  409. else
  410. {
  411. rdb_en.Checked = true;
  412. WriteDefaultLanguage("EN");
  413. //国际化
  414. Language lan1 = new Language(this);
  415. }
  416. }
  417. private void rdb_en_CheckedChanged(object sender, EventArgs e)
  418. {
  419. if (rdb_en.Checked == true)
  420. {
  421. rdb_ch.Checked = false;
  422. WriteDefaultLanguage("EN");
  423. //国际化
  424. Language lan1 = new Language(this);
  425. }
  426. else
  427. {
  428. rdb_ch.Checked = true;
  429. WriteDefaultLanguage("ZH");
  430. //国际化
  431. Language lan1 = new Language(this);
  432. }
  433. }
  434. private void rdb_ch_Click(object sender, EventArgs e)
  435. {
  436. rdb_en.Checked = false;
  437. WriteDefaultLanguage("ZH");
  438. //国际化
  439. Language lan1 = new Language(this);
  440. }
  441. private void rdb_en_Click(object sender, EventArgs e)
  442. {
  443. rdb_ch.Checked = false;
  444. WriteDefaultLanguage("EN");
  445. //国际化
  446. Language lan1 = new Language(this);
  447. }
  448. private void CmbSEMController_SelectedIndexChanged(object sender, EventArgs e)
  449. {
  450. SaveSEMAndEDSController();
  451. }
  452. private void CmbEDSController_SelectedIndexChanged(object sender, EventArgs e)
  453. {
  454. SaveSEMAndEDSController();
  455. }
  456. private void btnRemove_Click(object sender, EventArgs e)
  457. {
  458. string message11 = table["message11"].ToString();
  459. //1.删除License文件
  460. if (MessageBox.Show(message11, "Tip",MessageBoxButtons.YesNo,MessageBoxIcon.Information)== DialogResult.Yes)
  461. {
  462. //设置XML节点信息
  463. SaveSetting("ComupterName", "");
  464. SaveSetting("HardwareID", "");
  465. SaveSetting("OTSProduct", "");
  466. SaveSetting("PassType", "");
  467. SaveSetting("ExpireDate", "");
  468. tabHardwareSet.Parent = null;
  469. }
  470. }
  471. //修改默认语言
  472. public static void WriteDefaultLanguage(string lang)
  473. {
  474. DataSet ds = new DataSet();
  475. ds.ReadXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml");
  476. DataTable dt = ds.Tables["Language"];
  477. dt.Rows[0]["DefaultLanguage"] = lang;
  478. ds.AcceptChanges();
  479. ds.WriteXml(System.Windows.Forms.Application.StartupPath + @"/Resources/XMLData/LanguageDefine.xml");
  480. }
  481. }
  482. }