-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSettings.cs
More file actions
127 lines (118 loc) · 4.04 KB
/
Settings.cs
File metadata and controls
127 lines (118 loc) · 4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Management;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace RunCat
{
[Serializable]
public class Settings
{
private static string AppSettingPath
{
get
{
string roming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string appDataPath = Path.Combine(roming, AppName);
string appSettingPath = Path.Combine(appDataPath, "settings.json");
if (!Directory.Exists(appDataPath)) Directory.CreateDirectory(appDataPath);
return appSettingPath;
}
}
public static string AppName
{
get
{
string appName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
return string.IsNullOrWhiteSpace(appName) ? "RunCat" : appName;
}
}
public bool Save()
{
try
{
XmlSerializer serializer = new XmlSerializer(new Settings().GetType());
string content = string.Empty;
using (StringWriter writer = new StringWriter())
{
serializer.Serialize(writer, this);
content = writer.ToString();
}
File.WriteAllText(AppSettingPath, content);
return true;
}
catch (Exception e)
{
System.Windows.MessageBox.Show(e.ToString());
return false;
}
}
public static Settings ReadSetting()
{
Settings settings = new Settings();
if (File.Exists(AppSettingPath))
{
try
{
XmlSerializer serializer = new XmlSerializer(settings.GetType());
using (StreamReader reader = new StreamReader(AppSettingPath))
{
settings = (Settings)serializer.Deserialize(reader);
}
}
catch (Exception e)
{
System.Windows.MessageBox.Show(e.ToString());
}
}
return settings;
}
public static int GetPhisicalMemory()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher
{
Query = new SelectQuery("Win32_PhysicalMemory ", "", new string[] { "Capacity" })//设置查询条件
}; //用于查询一些如系统信息的管理对象
ManagementObjectCollection collection = searcher.Get(); //获取内存容量
ManagementObjectCollection.ManagementObjectEnumerator em = collection.GetEnumerator();
long capacity = 0;
while (em.MoveNext())
{
ManagementBaseObject baseObj = em.Current;
if (baseObj.Properties["Capacity"].Value != null)
{
try
{
capacity += long.Parse(baseObj.Properties["Capacity"].Value.ToString());
}
catch
{
return 0;
}
}
}
return (int)(capacity / 1024 / 1024);
}
private string _runner = RunnerIcon.Cat;
public string Runner
{
get { return _runner.ToLower(); }
set { _runner = value; }
}
private PerformanceType _performance = PerformanceType.CPU;
public PerformanceType Performance
{
get { return _performance; }
set { _performance = value; }
}
private WindowsTheme _customTheme = WindowsTheme.Default;
public WindowsTheme CustomTheme
{
get { return _customTheme; }
set { _customTheme = value; }
}
}
}