ConfigProcess.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace NetworkRemoteControlLib
  7. {
  8. public class ConfigProcess
  9. {
  10. public ConfigProcess() {
  11. }
  12. public static string ConfigFilePath { get; } =LYFZ.WinAPI.CustomPublicMethod.GetFullDirectoryPath(LYFZ.WinAPI.CustomPublicMethod.BasePath)+"Config.json";
  13. /// <summary>
  14. /// 主机列表
  15. /// </summary>
  16. public List<ConnectionItem> ConnectionItemList { get; } = new List<ConnectionItem>();
  17. /// <summary>
  18. /// 屏幕发送频率
  19. /// </summary>
  20. public int ScreenSendFrequency { set; get; } = 0;
  21. /// <summary>
  22. /// 屏幕图像品质
  23. /// </summary>
  24. public int ScreenImageQuality { set; get; } = 0;
  25. public bool LoadConfig()
  26. {
  27. try
  28. {
  29. if (System.IO.File.Exists(ConfigFilePath))
  30. {
  31. this.ConnectionItemList.Clear();
  32. string DataJsonString = System.IO.File.ReadAllText(ConfigFilePath, Encoding.UTF8);
  33. dynamic jsonDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject(DataJsonString);
  34. this.ScreenSendFrequency = jsonDataObj.屏幕发送频率;
  35. this.ScreenImageQuality = jsonDataObj.屏幕图像品质;
  36. foreach (dynamic item in jsonDataObj.主机配置列表)
  37. {
  38. this.ConnectionItemList.Add(new ConnectionItem(item.主机名称.ToString(), item.主机名或IP.ToString(),Convert.ToInt32(item.主机端口),item.主机描述.ToString()));
  39. }
  40. }
  41. else {
  42. return false;
  43. }
  44. return true;
  45. }
  46. catch {
  47. return false;
  48. }
  49. }
  50. public bool SaveConfig()
  51. {
  52. try
  53. {
  54. List<object> 主机列表 = new List<object>();
  55. foreach (ConnectionItem citem in ConnectionItemList)
  56. {
  57. object 主机 = new
  58. {
  59. 主机名称 = citem.DescriptionName,
  60. 主机名或IP = citem.HostNameIP,
  61. 主机端口 = citem.HostPort,
  62. 主机描述 = citem.DescriptionInformation
  63. };
  64. 主机列表.Add(主机);
  65. }
  66. var 系统设置 = new
  67. {
  68. 屏幕发送频率 = ScreenSendFrequency,
  69. 屏幕图像品质 = ScreenImageQuality,
  70. 主机配置列表 = 主机列表
  71. };
  72. string iniConfigInfo = Newtonsoft.Json.JsonConvert.SerializeObject(系统设置);
  73. System.IO.File.WriteAllBytes(ConfigFilePath, Encoding.UTF8.GetBytes(iniConfigInfo));
  74. return true;
  75. }
  76. catch {
  77. return false;
  78. }
  79. }
  80. }
  81. }