├── DarkMode
├── dark.ico
├── light.ico
├── FodyWeavers.xml
├── Properties
│ ├── Settings.settings
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Program.cs
├── App.config
├── CmdCommit.cs
├── IPAddress.cs
├── app.manifest
├── Form1.Designer.cs
├── DarkMode.csproj
├── SwitchTime.cs
├── Form1.cs
├── Form2.cs
├── Language.cs
├── Form2.Designer.cs
└── Form1.resx
├── LICENSE
├── DarkMode.sln
├── .gitattributes
├── README.md
├── README_zh-TW.md
├── README_JP.md
├── README_EN.md
└── .gitignore
/DarkMode/dark.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Lunova-Studio/DarkMode/HEAD/DarkMode/dark.ico
--------------------------------------------------------------------------------
/DarkMode/light.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Lunova-Studio/DarkMode/HEAD/DarkMode/light.ico
--------------------------------------------------------------------------------
/DarkMode/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/DarkMode/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/DarkMode/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 |
5 | namespace DarkMode
6 | {
7 | internal static class Program
8 | {
9 | ///
10 | /// 应用程序的主入口点。
11 | ///
12 | [STAThread]
13 | static void Main()
14 | {
15 | Application.EnableVisualStyles();
16 | Application.SetCompatibleTextRenderingDefault(false);
17 | Application.Run(new Form1());
18 | }
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/DarkMode/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // 有关程序集的一般信息由以下
5 | // 控制。更改这些特性值可修改
6 | // 与程序集关联的信息。
7 | [assembly: AssemblyTitle("DarkMode")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("XiaoFans,Melon Studio")]
11 | [assembly: AssemblyProduct("DarkMode")]
12 | [assembly: AssemblyCopyright("本程序版权归 Melon Studio - XiaoFans 所有。")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // 将 ComVisible 设置为 false 会使此程序集中的类型
17 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
18 | //请将此类型的 ComVisible 特性设置为 true。
19 | [assembly: ComVisible(false)]
20 |
21 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
22 | [assembly: Guid("bdef146a-29d3-4ddd-b4ae-832e1ba596d9")]
23 |
24 | // 程序集的版本信息由下列四个值组成:
25 | //
26 | // 主版本
27 | // 次版本
28 | // 生成号
29 | // 修订号
30 | //
31 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
32 | //通过使用 "*",如下所示:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.6.5")]
35 | [assembly: AssemblyFileVersion("1.6.5")]
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Melon Studio
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/DarkMode.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.32112.339
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DarkMode", "DarkMode\DarkMode.csproj", "{BDEF146A-29D3-4DDD-B4AE-832E1BA596D9}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {BDEF146A-29D3-4DDD-B4AE-832E1BA596D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {BDEF146A-29D3-4DDD-B4AE-832E1BA596D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {BDEF146A-29D3-4DDD-B4AE-832E1BA596D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {BDEF146A-29D3-4DDD-B4AE-832E1BA596D9}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {FB8500CF-5720-4F55-917B-86553413CCC9}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/DarkMode/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace DarkMode.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/DarkMode/App.config:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/DarkMode/CmdCommit.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 | using System;
3 | using System.IO;
4 |
5 | namespace DarkMode
6 | {
7 | internal class CmdCommit
8 | {
9 | public static string WallpaperEnginePath()
10 | {
11 | try
12 | {
13 | string wallpaperEnginePath = Registry.GetValue("HKEY_CURRENT_USER\\Software\\WallpaperEngine", "installPath", "").ToString();
14 | if (File.Exists(wallpaperEnginePath))
15 | {
16 | return wallpaperEnginePath;
17 | }
18 | return "false";
19 | }
20 | catch
21 | {
22 | return "false";
23 | }
24 |
25 | }
26 |
27 | public static string WallpaperPath()
28 | {
29 | string wallpaperEnginePath = WallpaperEnginePath();
30 | if(wallpaperEnginePath == "false")
31 | {
32 | return Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
33 | }
34 | string workshop = wallpaperEnginePath.Substring(0, wallpaperEnginePath.IndexOf("\\common")) + @"\workshop\content";
35 | return workshop;
36 | }
37 |
38 | public static void CmdCommandLight(string mingling)
39 | {
40 | RegistryKey key;
41 | key = Registry.CurrentUser.OpenSubKey(@"Software\WallpaperEngine", true);
42 | string s = key.GetValue("installPath").ToString();
43 |
44 | string zhilin = "\"" + s + "\"" + " -control openWallpaper -file " + "\"" + mingling + "\"";
45 | //执行cmd命令
46 | System.Diagnostics.Process process = new System.Diagnostics.Process()
47 | {
48 | StartInfo =
49 | {
50 | FileName = "cmd.exe",
51 | UseShellExecute = false,
52 | RedirectStandardInput = true,
53 | RedirectStandardOutput = true,
54 | RedirectStandardError = true,
55 | CreateNoWindow = true,
56 | }
57 | };
58 | process.Start();
59 | process.StandardInput.WriteLine(zhilin);
60 | process.StandardInput.WriteLine("exit");
61 | process.StandardInput.AutoFlush = true;
62 | process.WaitForExit();
63 |
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/DarkMode/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本: 4.0.30319.42000
5 | //
6 | // 对此文件的更改可能导致不正确的行为,如果
7 | // 重新生成代码,则所做更改将丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace DarkMode.Properties
12 | {
13 |
14 |
15 | ///
16 | /// 强类型资源类,用于查找本地化字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// 返回此类使用的缓存 ResourceManager 实例。
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DarkMode.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// 重写当前线程的 CurrentUICulture 属性,对
56 | /// 使用此强类型资源类的所有资源查找执行重写。
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 本仓库已进入只读模式,点击右侧链接转到DarkMode2仓库,https://github.com/Melon-Studio/DarkMode2
2 | # 🌙DarkMode
3 |
4 |    
5 |
6 | 中文简体(zh-CN) | [中文繁體(zh-TW)](README_zh-TW.md) | [English(en-US)](README_EN.md) | [日本語(ja-JP)](README_JP.md)
7 |
8 | ## 📂介绍
9 |
10 | DarkMode是在 Windows11 系统下运行,提供自动切换深色模式的软件,使用 C# 编写。
11 |
12 |
13 |
14 | ## 🧡优势
15 |
16 | 实时更改——相较于市面上的使用任务计划来实现此功能,我认为该方法是不可取的,如果你开机处于这个时间段内时,任务计划不会去执行此次任务,所以实时就是本软件的一大特点。
17 |
18 | 体量小占用少——软件使用C# .NET Framework 4.7.2开发,软件仅有不到1MB大小,内存占用只有10MB左右,做到真正的轻量。
19 |
20 | 开机自启——软件可以设置开机自启,保证每次开机都会正常运行,服务用户,不想使用时可以随时关闭。
21 |
22 | 多语言支持——软件支持三个国家四种语言,简体中文、繁体中文、日语和英语。
23 |
24 | Wallpaper Engine壁纸切换——软件不仅支持切换原生壁纸,还可以切换Wallpaper Engine壁纸,帮助请查阅Wiki。
25 |
26 |
27 |
28 | ## 📀运行环境
29 |
30 | 操作系统:Windows 11
31 |
32 | 操作系统位数:x64
33 |
34 | 必要框架:.NET Framework 4.7.2
35 |
36 | 如果系统没有框架,请[点此安装](https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net472-web-installer)
37 |
38 | 下载:[点击此处或者右侧Release](https://github.com/Melon-Studio/DarkMode/releases)
39 |
40 |
41 |
42 | ## 🎉贡献
43 |
44 | 1. Fork本仓库代码
45 | 2. 本地执行Git命令:
46 |
47 | ```shell
48 | git clone https://github.com/xxxxxxx/DarkMode.git
49 | ```
50 |
51 | 3. 使用Visual Studio启动项目
52 | 4. 编写代码
53 | 5. 提交PR
54 |
55 |
56 |
57 | ## 🧷版权与许可
58 |
59 | 本开源项目遵循国际 MIT 开源协议,具体内容请详细阅读开源许可证
60 |
61 | ```
62 | MIT License
63 |
64 | Copyright (c) 2022 Melon Studio
65 |
66 | Permission is hereby granted, free of charge, to any person obtaining a copy
67 | of this software and associated documentation files (the "Software"), to deal
68 | in the Software without restriction, including without limitation the rights
69 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
70 | copies of the Software, and to permit persons to whom the Software is
71 | furnished to do so, subject to the following conditions:
72 |
73 | The above copyright notice and this permission notice shall be included in all
74 | copies or substantial portions of the Software.
75 |
76 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
77 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
78 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
79 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
80 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
81 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
82 | SOFTWARE.
83 | ```
84 |
85 | 本项目使用第三方库: Costura.Fody ,作者:geertvanhorrik,simoncropp,开源许可证:MIT
86 |
87 |
88 |
89 | ## 📶趋势
90 |
91 |
92 | [](https://star-history.com/#Melon-Studio/DarkMode)
93 |
94 | ## 🌞鸣谢
95 |
96 | > 特别感谢Microsoft为广大开发者提供的免费IDE:Visual Studio
97 |
98 | 
99 |
--------------------------------------------------------------------------------
/DarkMode/IPAddress.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json.Linq;
2 | using System.IO;
3 | using System.Net;
4 | using System.Text;
5 |
6 | namespace DarkMode
7 | {
8 | internal class IPAddress
9 | {
10 | public string IP()
11 | {
12 | try
13 | {
14 | string url = "https://www.ip.cn/api/index?ip=&type=0";
15 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
16 | request.Method = "GET";
17 | request.ContentType = "application/json;charset=UTF-8";
18 | request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36";
19 | HttpWebResponse response = (HttpWebResponse)request.GetResponse();
20 | Stream myResponseStream = response.GetResponseStream();
21 | StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
22 | string retString = myStreamReader.ReadToEnd();
23 | myStreamReader.Close();
24 | myResponseStream.Close();
25 | response.Close();
26 | JObject json = JObject.Parse(retString);
27 | string ip = (string)json["ip"];
28 | return ip;
29 | }
30 | catch { }
31 | return "127.0.0.1";
32 | }
33 |
34 | public string Address()
35 | {
36 | string url = "https://www.ip.cn/api/index?ip=&type=0";
37 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
38 | request.Method = "GET";
39 | request.ContentType = "application/json;charset=UTF-8";
40 | request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36";
41 | HttpWebResponse response = (HttpWebResponse)request.GetResponse();
42 | Stream myResponseStream = response.GetResponseStream();
43 | StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
44 | string retString = myStreamReader.ReadToEnd();
45 | myStreamReader.Close();
46 | myResponseStream.Close();
47 | response.Close();
48 | JObject json = JObject.Parse(retString);
49 | string address = (string)json["address"];
50 | address = address.Replace("移动", "");
51 | address = address.Replace("电信", "");
52 | address = address.Replace("联通", "");
53 | address = address.Replace("铁通", "");
54 | address = address.Replace("鹏博士", "");
55 | address = address.Replace("教育网", "");
56 | address = address.Replace("长城", "");
57 | address = address.Replace(" ", "");
58 | address = address.Replace("省", "");
59 | address = address.Replace("市", "");
60 | address = address.Replace("区", "");
61 | address = address.Replace("县", "");
62 | return address;
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/README_zh-TW.md:
--------------------------------------------------------------------------------
1 | # 🌙DarkMode
2 |
3 |    
4 |
5 | [中文简体(zh-CN)](README.md) | 中文繁體(zh-TW) | [English(en-US)](README_EN.md) | [日本語(ja-JP)](README_JP.md)
6 |
7 | 註明:因大陸普通用語和台灣地區用語存在差異,所以部分詞彙翻譯使用機器翻譯
8 |
9 | ## 📂介紹
10 |
11 | DarkMode是在 Windows11 系統下運行,提供自動切換深色模式的軟體,使用 C# 編寫。
12 |
13 |
14 |
15 | ## 🧡優勢
16 |
17 | 實時更改——相較於市面上的使用任務計劃來實現此功能,我認為該方法是不可取的,如果你開機處於這個時間段內時,任務計劃不會去執行此次任務,所以實時就是本軟體的一大特點。
18 |
19 | 體量小占用少——軟體使用C# .NET Framework 4.7.2開發,軟體僅有不到1MB大小,內存佔用只有10MB左右,做到真正的輕量。
20 |
21 | 開機自啟——軟體可以設置開機自啟,保證每次開機都會正常運行,服務用戶,不想使用時可以隨時關閉。
22 |
23 | 多語言支持——軟體支持三個國家四種語言,簡體中文、繁體中文、日語和英語。
24 |
25 | Wallpaper Engine壁紙切換——軟體不僅支持切換原生壁紙,還可以切換Wallpaper Engine壁紙,幫助請查閱Wiki。
26 |
27 |
28 |
29 | ## 📀運行環境
30 |
31 | 操作系統:Windows 11
32 |
33 | 操作系統位數:x64
34 |
35 | 必要框架:.NET Framework 4.7.2
36 |
37 | 如果系統沒有框架,請[點此安裝](https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net472-web-installer)
38 |
39 | 下載:[點擊此處或者右側Release](https://github.com/Melon-Studio/DarkMode/releases)
40 |
41 |
42 |
43 | ## 🎉貢獻
44 |
45 | 1. Fork本倉庫代碼
46 | 2. 本地執行Git命令:
47 |
48 | ```shell
49 | git clone https://github.com/xxxxxxx/DarkMode.git
50 | ```
51 |
52 | 3. 使用Visual Studio啟動項目
53 | 4. 編寫代碼
54 | 5. 提交PR
55 |
56 |
57 |
58 | ## 🧷版權與許可
59 |
60 | 本開源項目遵循國際 MIT 開源協議,具體內容請詳細閱讀開源許可證
61 |
62 | ```
63 | MIT License
64 |
65 | Copyright (c) 2022 Melon Studio
66 |
67 | Permission is hereby granted, free of charge, to any person obtaining a copy
68 | of this software and associated documentation files (the "Software"), to deal
69 | in the Software without restriction, including without limitation the rights
70 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
71 | copies of the Software, and to permit persons to whom the Software is
72 | furnished to do so, subject to the following conditions:
73 |
74 | The above copyright notice and this permission notice shall be included in all
75 | copies or substantial portions of the Software.
76 |
77 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
78 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
79 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
80 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
81 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
82 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
83 | SOFTWARE.
84 | ```
85 |
86 | 本項目使用第三方庫: Costura.Fody ,作者:geertvanhorrik,simoncropp,開源許可證:MIT
87 |
88 |
89 |
90 | ## 📶趨勢
91 |
92 | [](https://star-history.com/#Melon-Studio/DarkMode)
93 |
94 |
95 |
96 | ## 🌞鳴謝
97 |
98 | > 特別感謝Microsoft為廣大開發者提供的免費IDE:Visual Studio
99 |
100 | 
101 |
--------------------------------------------------------------------------------
/DarkMode/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
50 |
58 |
59 |
73 |
--------------------------------------------------------------------------------
/README_JP.md:
--------------------------------------------------------------------------------
1 | # 🌙DarkMode
2 |
3 |    
4 |
5 | [中文简体(zh-CN)](README.md) | [中文繁體(zh-TW)](README_zh-TW.md) | [English(en-US)](README_EN.md) | 日本語(ja-JP)
6 |
7 | 注:一部の翻訳では機械翻訳を使用しています
8 |
9 | ## 📂説明
10 |
11 | DarkModeは、Windows 11で実行され、C#で記述されたダークモードの自動切り替えを提供するソフトウェアです。
12 |
13 |
14 |
15 | ## 🧡利点
16 |
17 | リアルタイムの変更——この機能を実現するためにタスクスケジューラを使用することはお勧めしません。コンピュータの電源を入れた後の夜間、タスクスケジューラはライトのテーマを切り替えないため、このソフトウェアの主な機能はリアルタイムです。
18 |
19 | 軽量——ソフトウェアはC#.NET Framework 4.7.2を使用して開発されており、ソフトウェアROMは1MB未満、RAMは約10 MBしか占有しないため、非常に軽量です。
20 |
21 | 起動時にセルフスタート——ソフトウェアを起動時にセルフスタートするように設定して、電源を入れるたびに正常に実行され、ユーザーにサービスを提供し、使用したくないときにソフトウェアを閉じることができます。
22 |
23 | 多言語サポート——簡体字中国語、繁体字中国語、日本語、英語の3か国で4つの言語をサポートしています。
24 |
25 | Wallpaper Engine壁紙の切り替え——このソフトウェアは、ネイティブの壁紙の切り替えだけでなく、Wallpaper Engineの壁紙もサポートしています。ヘルプについてはWikiを参照してください。
26 |
27 |
28 |
29 | ## 📀動作環境
30 |
31 | オペレーティング·システム:Windows 11
32 |
33 | オペレーティング·システムのビット:x64
34 |
35 | ランフレーム:.NET Framework 4.7.2
36 |
37 | システムにフレームワークがない場合は、[ここをクリックしてインストール](https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net472-web-installer)してください。
38 |
39 | ダウンロード:[ここをクリックするか、右側のリリース]((https://github.com/Melon-Studio/DarkMode/releases)
40 |
41 |
42 |
43 | ## 🎉貢献する
44 |
45 | 1. この倉庫のコードをフォークします
46 | 2. Gitコマンドをローカルで実行します。
47 |
48 | ```shell
49 | git clone https://github.com/xxxxxxx/DarkMode.git
50 | ```
51 |
52 | 3. VisualStudioでプロジェクトを開始します
53 | 4. コードを書く
54 | 5. PRを送信する
55 |
56 |
57 |
58 | ## 🧷著作権とライセンス
59 |
60 | このオープンソースプロジェクトは、国際MITオープンソース契約に準拠しています。詳細については、オープンソースライセンスをお読みください。
61 |
62 | ```
63 | MIT License
64 |
65 | Copyright (c) 2022 Melon Studio
66 |
67 | Permission is hereby granted, free of charge, to any person obtaining a copy
68 | of this software and associated documentation files (the "Software"), to deal
69 | in the Software without restriction, including without limitation the rights
70 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
71 | copies of the Software, and to permit persons to whom the Software is
72 | furnished to do so, subject to the following conditions:
73 |
74 | The above copyright notice and this permission notice shall be included in all
75 | copies or substantial portions of the Software.
76 |
77 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
78 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
79 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
80 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
81 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
82 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
83 | SOFTWARE.
84 | ```
85 |
86 | このプロジェクトでは、サードパーティのライブラリファイルを使用します:Costura.Fodyパッケージ、パッケージ作成者:geertvanhorrik、simoncropp、オープンソースライセンス:MIT
87 |
88 |
89 |
90 | ## 📶トレンド
91 |
92 | [](https://star-history.com/#Melon-Studio/DarkMode)
93 |
94 |
95 |
96 | ## 🌞ありがとう
97 |
98 | >開発者向けの無料IDEを提供してくれたMicrosoftに特に感謝します:Visual Studio
99 |
100 | 
101 |
--------------------------------------------------------------------------------
/README_EN.md:
--------------------------------------------------------------------------------
1 | # 🌙DarkMode
2 |
3 |    
4 |
5 | [中文简体(zh-CN)](README.md) | [中文繁體(zh-TW)](README_zh-TW.md) | English(en-US) | [日本語(ja-JP)](README_JP.md)
6 |
7 | Note: Some translations use machine translation.
8 |
9 | ## 📂Discription
10 |
11 | DarkMode is a software that runs under Windows 11 and provides automatic switching of dark mode, written in C#.
12 |
13 |
14 |
15 | ## 🧡Software advantages
16 |
17 | real-time changes——Using the Task Scheduler to achieve this functionality is not desirable. If you are in the dark theme time period after booting, the task plan will not execute this task, so you will not switch the dark theme, so real-time change is a major feature of this software.
18 |
19 | Lightweight——The software is developed using the C# language .NET Framework 4.7.2 framework. The software only takes up less than 1MB of ROM and only about 10MB of RAM, making it truly lightweight software.
20 |
21 | Automatic start——The software can be set to start automatically when it is turned on, to ensure that it will run normally every time it is turned on, serve users, and can be turned off at any time when you don't want to use it.
22 |
23 | Multilingual Support——The software supports four languages in three countries, Simplified Chinese, Traditional Chinese, Japanese and English.
24 |
25 | Wallpaper Engine wallpaper switching——The software not only supports switching native wallpapers, but also can switch Wallpaper Engine wallpapers, please refer to Wiki for help.
26 |
27 |
28 |
29 | ## 📀Operating environment
30 |
31 | System OS: Windows 11
32 |
33 | System Bits: x64
34 |
35 | Run frame: .NET Framework 4.7.2
36 |
37 | If your computer is not running the framework, [click here](https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net472-web-installer) to install.
38 |
39 | Download: [click here to install](https://github.com/Melon-Studio/DarkMode/releases)
40 |
41 |
42 |
43 | ## 🎉 Contribute
44 |
45 | 1. Fork the code of this warehouse
46 | 2. Execute the Git command locally:
47 |
48 | ```shell
49 | git clone https://github.com/xxxxxxx/DarkMode.git
50 | ````
51 |
52 | 3. Start the project with Visual Studio
53 | 4. Write the code
54 | 5. Submit PR
55 |
56 |
57 |
58 | ## 🧷Copyright and License
59 |
60 | This open source project follows the international MIT open source agreement, please read the open source license for details.
61 |
62 | ````
63 | MIT License
64 |
65 | Copyright (c) 2022 Melon Studio
66 |
67 | Permission is hereby granted, free of charge, to any person obtaining a copy
68 | of this software and associated documentation files (the "Software"), to deal
69 | in the Software without restriction, including without limitation the rights
70 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
71 | copies of the Software, and to permit persons to whom the Software is
72 | furnished to do so, subject to the following conditions:
73 |
74 | The above copyright notice and this permission notice shall be included in all
75 | copies or substantial portions of the Software.
76 |
77 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
78 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
79 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
80 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
81 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
82 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
83 | SOFTWARE.
84 | ````
85 |
86 | This project uses third-party library files: Costura.Fody package, package author: geertvanhorrik, simoncropp, open source license: MIT
87 |
88 |
89 | ## 📶Trends
90 |
91 |
92 | [](https://star-history.com/#Melon-Studio/DarkMode)
93 |
94 |
95 | ## 🌞Thanks
96 |
97 | > Special thanks to Microsoft for the free IDE for developers: Visual Studio
98 |
99 | 
100 |
--------------------------------------------------------------------------------
/DarkMode/Form1.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace DarkMode
2 | {
3 | partial class Form1
4 | {
5 | ///
6 | /// 必需的设计器变量。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 清理所有正在使用的资源。
12 | ///
13 | /// 如果应释放托管资源,为 true;否则为 false。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows 窗体设计器生成的代码
24 |
25 | ///
26 | /// 设计器支持所需的方法 - 不要修改
27 | /// 使用代码编辑器修改此方法的内容。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.components = new System.ComponentModel.Container();
32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
33 | this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
34 | this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
35 | this.SettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
36 | this.SelfOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
37 | this.AboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
38 | this.ExitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
39 | this.timer1 = new System.Windows.Forms.Timer(this.components);
40 | this.contextMenuStrip1.SuspendLayout();
41 | this.SuspendLayout();
42 | //
43 | // notifyIcon1
44 | //
45 | this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1;
46 | resources.ApplyResources(this.notifyIcon1, "notifyIcon1");
47 | this.notifyIcon1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseDoubleClick);
48 | //
49 | // contextMenuStrip1
50 | //
51 | this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
52 | this.SettingsToolStripMenuItem,
53 | this.SelfOnToolStripMenuItem,
54 | this.AboutToolStripMenuItem,
55 | this.ExitToolStripMenuItem});
56 | this.contextMenuStrip1.Name = "contextMenuStrip1";
57 | resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
58 | //
59 | // SettingsToolStripMenuItem
60 | //
61 | this.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem";
62 | resources.ApplyResources(this.SettingsToolStripMenuItem, "SettingsToolStripMenuItem");
63 | this.SettingsToolStripMenuItem.Click += new System.EventHandler(this.设置ToolStripMenuItem_Click);
64 | //
65 | // SelfOnToolStripMenuItem
66 | //
67 | this.SelfOnToolStripMenuItem.Name = "SelfOnToolStripMenuItem";
68 | resources.ApplyResources(this.SelfOnToolStripMenuItem, "SelfOnToolStripMenuItem");
69 | this.SelfOnToolStripMenuItem.Click += new System.EventHandler(this.开机自启ToolStripMenuItem_Click);
70 | //
71 | // AboutToolStripMenuItem
72 | //
73 | this.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem";
74 | resources.ApplyResources(this.AboutToolStripMenuItem, "AboutToolStripMenuItem");
75 | this.AboutToolStripMenuItem.Click += new System.EventHandler(this.关于ToolStripMenuItem_Click);
76 | //
77 | // ExitToolStripMenuItem
78 | //
79 | this.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem";
80 | resources.ApplyResources(this.ExitToolStripMenuItem, "ExitToolStripMenuItem");
81 | this.ExitToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click);
82 | //
83 | // timer1
84 | //
85 | this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
86 | //
87 | // Form1
88 | //
89 | resources.ApplyResources(this, "$this");
90 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
91 | this.Name = "Form1";
92 | this.Opacity = 0D;
93 | this.Load += new System.EventHandler(this.Form1_Load);
94 | this.contextMenuStrip1.ResumeLayout(false);
95 | this.ResumeLayout(false);
96 |
97 | }
98 |
99 | #endregion
100 |
101 | private System.Windows.Forms.NotifyIcon notifyIcon1;
102 | private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
103 | private System.Windows.Forms.ToolStripMenuItem AboutToolStripMenuItem;
104 | private System.Windows.Forms.ToolStripMenuItem SelfOnToolStripMenuItem;
105 | private System.Windows.Forms.ToolStripMenuItem ExitToolStripMenuItem;
106 | private System.Windows.Forms.Timer timer1;
107 | private System.Windows.Forms.ToolStripMenuItem SettingsToolStripMenuItem;
108 | }
109 | }
110 |
111 |
--------------------------------------------------------------------------------
/DarkMode/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Ww][Ii][Nn]32/
27 | [Aa][Rr][Mm]/
28 | [Aa][Rr][Mm]64/
29 | bld/
30 | [Bb]in/
31 | [Oo]bj/
32 | [Oo]ut/
33 | [Ll]og/
34 | [Ll]ogs/
35 |
36 | # Visual Studio 2015/2017 cache/options directory
37 | .vs/
38 | # Uncomment if you have tasks that create the project's static files in wwwroot
39 | #wwwroot/
40 |
41 | # Visual Studio 2017 auto generated files
42 | Generated\ Files/
43 |
44 | # MSTest test Results
45 | [Tt]est[Rr]esult*/
46 | [Bb]uild[Ll]og.*
47 |
48 | # NUnit
49 | *.VisualState.xml
50 | TestResult.xml
51 | nunit-*.xml
52 |
53 | # Build Results of an ATL Project
54 | [Dd]ebugPS/
55 | [Rr]eleasePS/
56 | dlldata.c
57 |
58 | # Benchmark Results
59 | BenchmarkDotNet.Artifacts/
60 |
61 | # .NET Core
62 | project.lock.json
63 | project.fragment.lock.json
64 | artifacts/
65 |
66 | # ASP.NET Scaffolding
67 | ScaffoldingReadMe.txt
68 |
69 | # StyleCop
70 | StyleCopReport.xml
71 |
72 | # Files built by Visual Studio
73 | *_i.c
74 | *_p.c
75 | *_h.h
76 | *.ilk
77 | *.meta
78 | *.obj
79 | *.iobj
80 | *.pch
81 | *.pdb
82 | *.ipdb
83 | *.pgc
84 | *.pgd
85 | *.rsp
86 | *.sbr
87 | *.tlb
88 | *.tli
89 | *.tlh
90 | *.tmp
91 | *.tmp_proj
92 | *_wpftmp.csproj
93 | *.log
94 | *.vspscc
95 | *.vssscc
96 | .builds
97 | *.pidb
98 | *.svclog
99 | *.scc
100 |
101 | # Chutzpah Test files
102 | _Chutzpah*
103 |
104 | # Visual C++ cache files
105 | ipch/
106 | *.aps
107 | *.ncb
108 | *.opendb
109 | *.opensdf
110 | *.sdf
111 | *.cachefile
112 | *.VC.db
113 | *.VC.VC.opendb
114 |
115 | # Visual Studio profiler
116 | *.psess
117 | *.vsp
118 | *.vspx
119 | *.sap
120 |
121 | # Visual Studio Trace Files
122 | *.e2e
123 |
124 | # TFS 2012 Local Workspace
125 | $tf/
126 |
127 | # Guidance Automation Toolkit
128 | *.gpState
129 |
130 | # ReSharper is a .NET coding add-in
131 | _ReSharper*/
132 | *.[Rr]e[Ss]harper
133 | *.DotSettings.user
134 |
135 | # TeamCity is a build add-in
136 | _TeamCity*
137 |
138 | # DotCover is a Code Coverage Tool
139 | *.dotCover
140 |
141 | # AxoCover is a Code Coverage Tool
142 | .axoCover/*
143 | !.axoCover/settings.json
144 |
145 | # Coverlet is a free, cross platform Code Coverage Tool
146 | coverage*.json
147 | coverage*.xml
148 | coverage*.info
149 |
150 | # Visual Studio code coverage results
151 | *.coverage
152 | *.coveragexml
153 |
154 | # NCrunch
155 | _NCrunch_*
156 | .*crunch*.local.xml
157 | nCrunchTemp_*
158 |
159 | # MightyMoose
160 | *.mm.*
161 | AutoTest.Net/
162 |
163 | # Web workbench (sass)
164 | .sass-cache/
165 |
166 | # Installshield output folder
167 | [Ee]xpress/
168 |
169 | # DocProject is a documentation generator add-in
170 | DocProject/buildhelp/
171 | DocProject/Help/*.HxT
172 | DocProject/Help/*.HxC
173 | DocProject/Help/*.hhc
174 | DocProject/Help/*.hhk
175 | DocProject/Help/*.hhp
176 | DocProject/Help/Html2
177 | DocProject/Help/html
178 |
179 | # Click-Once directory
180 | publish/
181 |
182 | # Publish Web Output
183 | *.[Pp]ublish.xml
184 | *.azurePubxml
185 | # Note: Comment the next line if you want to checkin your web deploy settings,
186 | # but database connection strings (with potential passwords) will be unencrypted
187 | *.pubxml
188 | *.publishproj
189 |
190 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
191 | # checkin your Azure Web App publish settings, but sensitive information contained
192 | # in these scripts will be unencrypted
193 | PublishScripts/
194 |
195 | # NuGet Packages
196 | *.nupkg
197 | # NuGet Symbol Packages
198 | *.snupkg
199 | # The packages folder can be ignored because of Package Restore
200 | **/[Pp]ackages/*
201 | # except build/, which is used as an MSBuild target.
202 | !**/[Pp]ackages/build/
203 | # Uncomment if necessary however generally it will be regenerated when needed
204 | #!**/[Pp]ackages/repositories.config
205 | # NuGet v3's project.json files produces more ignorable files
206 | *.nuget.props
207 | *.nuget.targets
208 |
209 | # Microsoft Azure Build Output
210 | csx/
211 | *.build.csdef
212 |
213 | # Microsoft Azure Emulator
214 | ecf/
215 | rcf/
216 |
217 | # Windows Store app package directories and files
218 | AppPackages/
219 | BundleArtifacts/
220 | Package.StoreAssociation.xml
221 | _pkginfo.txt
222 | *.appx
223 | *.appxbundle
224 | *.appxupload
225 |
226 | # Visual Studio cache files
227 | # files ending in .cache can be ignored
228 | *.[Cc]ache
229 | # but keep track of directories ending in .cache
230 | !?*.[Cc]ache/
231 |
232 | # Others
233 | ClientBin/
234 | ~$*
235 | *~
236 | *.dbmdl
237 | *.dbproj.schemaview
238 | *.jfm
239 | *.pfx
240 | *.publishsettings
241 | orleans.codegen.cs
242 |
243 | # Including strong name files can present a security risk
244 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
245 | #*.snk
246 |
247 | # Since there are multiple workflows, uncomment next line to ignore bower_components
248 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
249 | #bower_components/
250 |
251 | # RIA/Silverlight projects
252 | Generated_Code/
253 |
254 | # Backup & report files from converting an old project file
255 | # to a newer Visual Studio version. Backup files are not needed,
256 | # because we have git ;-)
257 | _UpgradeReport_Files/
258 | Backup*/
259 | UpgradeLog*.XML
260 | UpgradeLog*.htm
261 | ServiceFabricBackup/
262 | *.rptproj.bak
263 |
264 | # SQL Server files
265 | *.mdf
266 | *.ldf
267 | *.ndf
268 |
269 | # Business Intelligence projects
270 | *.rdl.data
271 | *.bim.layout
272 | *.bim_*.settings
273 | *.rptproj.rsuser
274 | *- [Bb]ackup.rdl
275 | *- [Bb]ackup ([0-9]).rdl
276 | *- [Bb]ackup ([0-9][0-9]).rdl
277 |
278 | # Microsoft Fakes
279 | FakesAssemblies/
280 |
281 | # GhostDoc plugin setting file
282 | *.GhostDoc.xml
283 |
284 | # Node.js Tools for Visual Studio
285 | .ntvs_analysis.dat
286 | node_modules/
287 |
288 | # Visual Studio 6 build log
289 | *.plg
290 |
291 | # Visual Studio 6 workspace options file
292 | *.opt
293 |
294 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
295 | *.vbw
296 |
297 | # Visual Studio LightSwitch build output
298 | **/*.HTMLClient/GeneratedArtifacts
299 | **/*.DesktopClient/GeneratedArtifacts
300 | **/*.DesktopClient/ModelManifest.xml
301 | **/*.Server/GeneratedArtifacts
302 | **/*.Server/ModelManifest.xml
303 | _Pvt_Extensions
304 |
305 | # Paket dependency manager
306 | .paket/paket.exe
307 | paket-files/
308 |
309 | # FAKE - F# Make
310 | .fake/
311 |
312 | # CodeRush personal settings
313 | .cr/personal
314 |
315 | # Python Tools for Visual Studio (PTVS)
316 | __pycache__/
317 | *.pyc
318 |
319 | # Cake - Uncomment if you are using it
320 | # tools/**
321 | # !tools/packages.config
322 |
323 | # Tabs Studio
324 | *.tss
325 |
326 | # Telerik's JustMock configuration file
327 | *.jmconfig
328 |
329 | # BizTalk build output
330 | *.btp.cs
331 | *.btm.cs
332 | *.odx.cs
333 | *.xsd.cs
334 |
335 | # OpenCover UI analysis results
336 | OpenCover/
337 |
338 | # Azure Stream Analytics local run output
339 | ASALocalRun/
340 |
341 | # MSBuild Binary and Structured Log
342 | *.binlog
343 |
344 | # NVidia Nsight GPU debugger configuration file
345 | *.nvuser
346 |
347 | # MFractors (Xamarin productivity tool) working folder
348 | .mfractor/
349 |
350 | # Local History for Visual Studio
351 | .localhistory/
352 |
353 | # BeatPulse healthcheck temp database
354 | healthchecksdb
355 |
356 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
357 | MigrationBackup/
358 |
359 | # Ionide (cross platform F# VS Code tools) working folder
360 | .ionide/
361 |
362 | # Fody - auto-generated XML schema
363 | FodyWeavers.xsd
--------------------------------------------------------------------------------
/DarkMode/DarkMode.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {BDEF146A-29D3-4DDD-B4AE-832E1BA596D9}
8 | WinExe
9 | DarkMode
10 | DarkMode
11 | v4.7.2
12 | 512
13 | true
14 | true
15 | false
16 | publish\
17 | true
18 | Disk
19 | false
20 | Foreground
21 | 7
22 | Days
23 | false
24 | false
25 | false
26 | zh-CN
27 | DarkMode - 吾爱破解论坛首发
28 | XiaoFans
29 | false
30 | true
31 | 2
32 | 1.0.0.%2a
33 | false
34 | true
35 | true
36 |
37 |
38 |
39 |
40 | x64
41 | true
42 | full
43 | false
44 | bin\Debug\
45 | DEBUG;TRACE
46 | prompt
47 | 4
48 |
49 |
50 | x64
51 | pdbonly
52 | true
53 | bin\Release\
54 | TRACE
55 | prompt
56 | 4
57 |
58 |
59 |
60 | 5D2CA5BDF32C2502C792966EB3D6AAFB6B1EB40B
61 |
62 |
63 | DarkMode_TemporaryKey.pfx
64 |
65 |
66 | false
67 |
68 |
69 | true
70 |
71 |
72 | LocalIntranet
73 |
74 |
75 | dark.ico
76 |
77 |
78 | app.manifest
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 | Form
106 |
107 |
108 | Form1.cs
109 |
110 |
111 | Form
112 |
113 |
114 | Form2.cs
115 |
116 |
117 |
118 |
119 |
120 | Form1.cs
121 |
122 |
123 | Form2.cs
124 |
125 |
126 | ResXFileCodeGenerator
127 | Resources.Designer.cs
128 | Designer
129 |
130 |
131 | True
132 | Resources.resx
133 |
134 |
135 |
136 |
137 | SettingsSingleFileGenerator
138 | Settings.Designer.cs
139 |
140 |
141 | True
142 | Settings.settings
143 | True
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 | False
152 | Microsoft .NET Framework 4.7.2 %28x86 和 x64%29
153 | true
154 |
155 |
156 | False
157 | .NET Framework 3.5 SP1
158 | false
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | 5.7.0
171 | runtime; build; native; contentfiles; analyzers; buildtransitive
172 | all
173 |
174 |
175 | 7.1.2
176 |
177 |
178 | 13.0.1
179 |
180 |
181 | 14332.0.2
182 |
183 |
184 | 1.3.1
185 |
186 |
187 | 4.5.2
188 |
189 |
190 | 4.5.0
191 |
192 |
193 | 4.3.0
194 |
195 |
196 |
197 |
--------------------------------------------------------------------------------
/DarkMode/SwitchTime.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace DarkMode
4 | {
5 | ///
6 | /// 日出日落时间类
7 | ///
8 | public static class SunTimes
9 | {
10 | #region 公共方法
11 | ///
12 | /// 计算日长
13 | ///
14 | /// 日期
15 | /// 经度
16 | /// 纬度
17 | /// 日长
18 | ///
19 | /// 注:日期最小为2000.1.1号
20 | ///
21 | public static double GetDayLength(DateTime date, double longitude, double latitude)
22 | {
23 | double result = DayLen(date.Year, date.Month, date.Day, longitude, latitude, -35.0 / 60.0, 1);
24 | return result;
25 | }
26 |
27 | ///
28 | /// 计算日出日没时间
29 | ///
30 | /// 日期
31 | /// 经度
32 | /// 纬度
33 | /// 日落日出时间
34 | ///
35 | /// 注:日期最小为2000.1.1号
36 | ///
37 | public static SunTimeResult GetSunTime(DateTime date, double longitude, double latitude)
38 | {
39 | double start = 0;
40 | double end = 0;
41 | SunRiset(date.Year, date.Month, date.Day, longitude, latitude, -35.0 / 60.0, 1, ref start, ref end);
42 | DateTime sunrise = ToLocalTime(date, start);
43 | DateTime sunset = ToLocalTime(date, end);
44 | return new SunTimeResult(sunrise, sunset);
45 | }
46 | #endregion
47 |
48 | #region 私有方法
49 |
50 | #region 时间转换
51 | private static DateTime ToLocalTime(DateTime time, double utTime)
52 | {
53 | int hour = Convert.ToInt32(Math.Floor(utTime));
54 | double temp = utTime - hour;
55 | hour += 8;//转换为东8区北京时间
56 | temp = temp * 60;
57 | int minute = Convert.ToInt32(Math.Floor(temp));
58 | try
59 | {
60 | return new DateTime(time.Year, time.Month, time.Day, hour, minute, 0);
61 | }
62 | catch
63 | {
64 | return new DateTime(time.Year, time.Month, time.Day, 0, 0, 0);
65 | }
66 | }
67 | #endregion
68 |
69 | #region 与日出日落时间相关计算
70 | private static double DayLen(int year, int month, int day, double lon, double lat,
71 | double altit, int upper_limb)
72 | {
73 | double d, /* Days since 2000 Jan 0.0 (negative before) */
74 | obl_ecl, /* Obliquity (inclination) of Earth\'s axis */
75 | //黄赤交角,在2000.0历元下国际规定为23度26分21.448秒,但有很小的时间演化。
76 |
77 | sr, /* Solar distance, astronomical units */
78 | slon, /* True solar longitude */
79 | sin_sdecl, /* Sine of Sun\'s declination */
80 | //太阳赤纬的正弦值。
81 | cos_sdecl, /* Cosine of Sun\'s declination */
82 | sradius, /* Sun\'s apparent radius */
83 | t; /* Diurnal arc */
84 |
85 | /* Compute d of 12h local mean solar time */
86 | d = Days_since_2000_Jan_0(year, month, day) + 0.5 - lon / 360.0;
87 |
88 | /* Compute obliquity of ecliptic (inclination of Earth\'s axis) */
89 | obl_ecl = 23.4393 - 3.563E-7 * d;
90 | //这个黄赤交角时变公式来历复杂,很大程度是经验性的,不必追究。
91 |
92 | /* Compute Sun\'s position */
93 | slon = 0.0;
94 | sr = 0.0;
95 | Sunpos(d, ref slon, ref sr);
96 |
97 | /* Compute sine and cosine of Sun\'s declination */
98 | sin_sdecl = Sind(obl_ecl) * Sind(slon);
99 | cos_sdecl = Math.Sqrt(1.0 - sin_sdecl * sin_sdecl);
100 | //用球面三角学公式计算太阳赤纬。
101 |
102 | /* Compute the Sun\'s apparent radius, degrees */
103 | sradius = 0.2666 / sr;
104 | //视半径,同前。
105 |
106 | /* Do correction to upper limb, if necessary */
107 | if (upper_limb != 0)
108 | altit -= sradius;
109 |
110 | /* Compute the diurnal arc that the Sun traverses to reach */
111 | /* the specified altitide altit: */
112 | //根据设定的地平高度判据计算周日弧长。
113 | double cost;
114 | cost = (Sind(altit) - Sind(lat) * sin_sdecl) /
115 | (Cosd(lat) * cos_sdecl);
116 | if (cost >= 1.0)
117 | t = 0.0; /* Sun always below altit */
118 | //极夜。
119 | else if (cost <= -1.0)
120 | t = 24.0; /* Sun always above altit */
121 | //极昼。
122 | else t = (2.0 / 15.0) * Acosd(cost); /* The diurnal arc, hours */
123 | //周日弧换算成小时计。
124 | return t;
125 |
126 | }
127 |
128 | private static void Sunpos(double d, ref double lon, ref double r)
129 | {
130 | double M,//太阳的平均近点角,从太阳观察到的地球(=从地球看到太阳的)距近日点(近地点)的角度。
131 | w, //近日点的平均黄道经度。
132 | e, //地球椭圆公转轨道离心率。
133 | E, //太阳的偏近点角。计算公式见下面。
134 |
135 | x, y,
136 | v; //真近点角,太阳在任意时刻的真实近点角。
137 |
138 |
139 | M = Revolution(356.0470 + 0.9856002585 * d);//自变量的组成:2000.0时刻太阳黄经为356.0470度,此后每天约推进一度(360度/365天
140 | w = 282.9404 + 4.70935E-5 * d;//近日点的平均黄经。
141 |
142 | e = 0.016709 - 1.151E-9 * d;//地球公转椭圆轨道离心率的时间演化。以上公式和黄赤交角公式一样,不必深究。
143 |
144 | E = M + e * Radge * Sind(M) * (1.0 + e * Cosd(M));
145 | x = Cosd(E) - e;
146 | y = Math.Sqrt(1.0 - e * e) * Sind(E);
147 | r = Math.Sqrt(x * x + y * y);
148 | v = Atan2d(y, x);
149 | lon = v + w;
150 | if (lon >= 360.0)
151 | lon -= 360.0;
152 | }
153 |
154 | private static void Sun_RA_dec(double d, ref double RA, ref double dec, ref double r)
155 | {
156 | double lon, obl_ecl, x, y, z;
157 | lon = 0.0;
158 |
159 | Sunpos(d, ref lon, ref r);
160 | //计算太阳的黄道坐标。
161 |
162 | x = r * Cosd(lon);
163 | y = r * Sind(lon);
164 | //计算太阳的直角坐标。
165 |
166 | obl_ecl = 23.4393 - 3.563E-7 * d;
167 | //黄赤交角,同前。
168 |
169 | z = y * Sind(obl_ecl);
170 | y = y * Cosd(obl_ecl);
171 | //把太阳的黄道坐标转换成赤道坐标(暂改用直角坐标)。
172 |
173 | RA = Atan2d(y, x);
174 | dec = Atan2d(z, Math.Sqrt(x * x + y * y));
175 | //最后转成赤道坐标。显然太阳的位置是由黄道坐标方便地直接确定的,但必须转换到赤
176 | //道坐标里才能结合地球的自转确定我们需要的白昼长度。
177 |
178 | }
179 | ///
180 | /// 日出没时刻计算
181 | ///
182 | /// 年
183 | /// 月
184 | /// 日
185 | ///
186 | ///
187 | ///
188 | ///
189 | /// 日出时刻
190 | /// 日没时刻
191 | /// 太阳有出没现象,返回0 极昼,返回+1 极夜,返回-1
192 | private static int SunRiset(int year, int month, int day, double lon, double lat,
193 | double altit, int upper_limb, ref double trise, ref double tset)
194 | {
195 | double d, /* Days since 2000 Jan 0.0 (negative before) */
196 | //以历元2000.0起算的日数。
197 |
198 | sr, /* Solar distance, astronomical units */
199 | //太阳距离,以天文单位计算(约1.5亿公里)。
200 |
201 | sRA, /* Sun\'s Right Ascension */
202 | //同前,太阳赤经。
203 |
204 | sdec, /* Sun\'s declination */
205 | //太阳赤纬。
206 |
207 | sradius, /* Sun\'s apparent radius */
208 | //太阳视半径,约16分(受日地距离、大气折射等诸多影响)
209 |
210 | t, /* Diurnal arc */
211 | //周日弧,太阳一天在天上走过的弧长。
212 |
213 | tsouth, /* Time when Sun is at south */
214 | sidtime; /* Local sidereal time */
215 | //当地恒星时,即地球的真实自转周期。比平均太阳日(日常时间)长3分56秒。
216 |
217 | int rc = 0; /* Return cde from function - usually 0 */
218 |
219 | /* Compute d of 12h local mean solar time */
220 | d = Days_since_2000_Jan_0(year, month, day) + 0.5 - lon / 360.0;
221 | //计算观测地当日中午时刻对应2000.0起算的日数。
222 |
223 | /* Compute local sideral time of this moment */
224 | sidtime = Revolution(GMST0(d) + 180.0 + lon);
225 | //计算同时刻的当地恒星时(以角度为单位)。以格林尼治为基准,用经度差校正。
226 |
227 | /* Compute Sun\'s RA + Decl at this moment */
228 | sRA = 0.0;
229 | sdec = 0.0;
230 | sr = 0.0;
231 | Sun_RA_dec(d, ref sRA, ref sdec, ref sr);
232 | //计算同时刻太阳赤经赤纬。
233 |
234 | /* Compute time when Sun is at south - in hours UT */
235 | tsouth = 12.0 - Rev180(sidtime - sRA) / 15.0;
236 | //计算太阳日的正午时刻,以世界时(格林尼治平太阳时)的小时计。
237 |
238 | /* Compute the Sun\'s apparent radius, degrees */
239 | sradius = 0.2666 / sr;
240 | //太阳视半径。0.2666是一天文单位处的太阳视半径(角度)。
241 |
242 | /* Do correction to upper limb, if necessary */
243 | if (upper_limb != 0)
244 | altit -= sradius;
245 | //如果要用上边缘,就要扣除一个视半径。
246 |
247 | /* Compute the diurnal arc that the Sun traverses to reach */
248 | //计算周日弧。直接利用球面三角公式。如果碰到极昼极夜问题,同前处理。
249 | /* the specified altitide altit: */
250 |
251 | double cost;
252 | cost = (Sind(altit) - Sind(lat) * Sind(sdec)) /
253 | (Cosd(lat) * Cosd(sdec));
254 | if (cost >= 1.0)
255 | {
256 | rc = -1;
257 | t = 0.0;
258 | }
259 | else
260 | {
261 | if (cost <= -1.0)
262 | {
263 | rc = +1;
264 | t = 12.0; /* Sun always above altit */
265 | }
266 | else
267 | t = Acosd(cost) / 15.0; /* The diurnal arc, hours */
268 | }
269 |
270 |
271 | /* Store rise and set times - in hours UT */
272 | trise = tsouth - t;
273 | tset = tsouth + t;
274 |
275 | return rc;
276 | }
277 | #endregion
278 |
279 | #region 辅助函数
280 | ///
281 | /// 历元2000.0,即以2000年第一天开端为计日起始(天文学以第一天为0日而非1日)。
282 | /// 它与UT(就是世界时,格林尼治平均太阳时)1999年末重合。
283 | ///
284 | ///
285 | ///
286 | ///
287 | ///
288 | private static long Days_since_2000_Jan_0(int y, int m, int d)
289 | {
290 | return (367L * (y) - ((7 * ((y) + (((m) + 9) / 12))) / 4) + ((275 * (m)) / 9) + (d) - 730530L);
291 | }
292 |
293 | private static double Revolution(double x)
294 | {
295 | return (x - 360.0 * Math.Floor(x * Inv360));
296 | }
297 |
298 | private static double Rev180(double x)
299 | {
300 | return (x - 360.0 * Math.Floor(x * Inv360 + 0.5));
301 | }
302 |
303 | private static double GMST0(double d)
304 | {
305 | double sidtim0;
306 | sidtim0 = Revolution((180.0 + 356.0470 + 282.9404) +
307 | (0.9856002585 + 4.70935E-5) * d);
308 | return sidtim0;
309 | }
310 |
311 |
312 | private static double Inv360 = 1.0 / 360.0;
313 | #endregion
314 |
315 | #region 度与弧度转换系数,为球面三角计算作准备
316 | private static double Sind(double x)
317 | {
318 | return Math.Sin(x * Degrad);
319 | }
320 |
321 | private static double Cosd(double x)
322 | {
323 | return Math.Cos(x * Degrad);
324 | }
325 |
326 | private static double Tand(double x)
327 | {
328 | return Math.Tan(x * Degrad);
329 |
330 | }
331 |
332 | private static double Atand(double x)
333 | {
334 | return Radge * Math.Atan(x);
335 | }
336 |
337 | private static double Asind(double x)
338 | {
339 | return Radge * Math.Asin(x);
340 | }
341 |
342 | private static double Acosd(double x)
343 | {
344 | return Radge * Math.Acos(x);
345 | }
346 |
347 | private static double Atan2d(double y, double x)
348 | {
349 | return Radge * Math.Atan2(y, x);
350 |
351 | }
352 |
353 | private static double Radge = 180.0 / Math.PI;
354 | private static double Degrad = Math.PI / 180.0;
355 |
356 | #endregion
357 |
358 | #endregion
359 | }
360 |
361 | ///
362 | /// 日出日落时间结果
363 | ///
364 | public class SunTimeResult
365 | {
366 | #region 构造与析构
367 | ///
368 | /// 构造函数
369 | ///
370 | /// 日出时间
371 | /// 日落时间
372 | public SunTimeResult(DateTime sunrise, DateTime sunset)
373 | {
374 | sunriseTime = sunrise;
375 | sunsetTime = sunset;
376 | }
377 | #endregion
378 |
379 | #region 属性定义
380 | ///
381 | /// 获取日出时间
382 | ///
383 | public DateTime SunriseTime
384 | {
385 | get
386 | {
387 | return sunriseTime;
388 | }
389 | }
390 |
391 | ///
392 | /// 获取日落时间
393 | ///
394 | public DateTime SunsetTime
395 | {
396 | get
397 | {
398 | return sunsetTime;
399 | }
400 | }
401 | #endregion
402 |
403 |
404 | #region 私成员
405 | private DateTime sunriseTime;//日出时间
406 | private DateTime sunsetTime;//日落时间
407 | #endregion
408 | }
409 | }
410 |
--------------------------------------------------------------------------------
/DarkMode/Form1.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 | using System;
3 | using System.Management;
4 | using System.Windows.Forms;
5 | using System.Drawing;
6 | using Microsoft.Toolkit.Uwp.Notifications;
7 |
8 | namespace DarkMode
9 | {
10 | public partial class Form1 : Form
11 | {
12 | public Form1()
13 | {
14 | InitializeComponent();
15 | this.WindowState = FormWindowState.Minimized;
16 | this.ShowInTaskbar = false;
17 |
18 | //注册表初始化
19 | try
20 | {
21 | RegistryKey pan;
22 | RegistryKey key;
23 | pan = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode");
24 |
25 | if (pan == null)
26 | {
27 | key = Registry.CurrentUser.CreateSubKey(@"Software\DarkMode");
28 | key = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
29 | key.SetValue("startTime", "08:00");
30 | key.SetValue("endTime", "19:00");
31 | key.SetValue("Language", "zh-CN");
32 | key.SetValue("SunRiseSet", "false");
33 | key.SetValue("IsDark", "true");
34 | key.SetValue("light_ys", "");
35 | key.SetValue("light_we", "");
36 | key.SetValue("dark_ys", "");
37 | key.SetValue("dark_we", "");
38 | key.SetValue("win_qs", "true");
39 | key.SetValue("app_qs", "true");
40 | key.SetValue("win_ss", "false");
41 | key.SetValue("app_ss", "false");
42 | key.Close();//关闭连接
43 | pan.Close();//关闭连接
44 | }
45 |
46 | }
47 | catch (Exception ex)
48 | {
49 | MessageBox.Show(Language.StringText("String7") + ex.Message, Language.StringText("String4"), MessageBoxButtons.OK, MessageBoxIcon.Error);
50 | Application.Exit();
51 | }
52 | System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Language.NowLanguage().ToString());
53 | }
54 |
55 | private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
56 | {
57 | MessageBox.Show(Language.StringText("String1"), Language.StringText("String2"));
58 | }
59 | private void 开机自启ToolStripMenuItem_Click(object sender, EventArgs e)
60 | {
61 | //设置开机自启
62 | try
63 | {
64 | if ((sender as ToolStripMenuItem).Checked = !(sender as ToolStripMenuItem).Checked)
65 | {
66 | string path = Application.ExecutablePath;
67 | RegistryKey rk = Registry.LocalMachine;
68 | RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
69 | rk2.SetValue("DarkMode", path);
70 | rk2.Close();
71 | rk.Close();
72 | }
73 | else
74 | {
75 | RegistryKey rk = Registry.LocalMachine;
76 | RegistryKey rk2 = rk.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
77 | rk2.DeleteValue("DarkMode", false);
78 | rk2.Close();
79 | rk.Close();
80 | }
81 | }
82 | catch (Exception ex)
83 | {
84 | MessageBox.Show(Language.StringText("String3") + ex.Message, Language.StringText("String4"), MessageBoxButtons.OK, MessageBoxIcon.Error);
85 | }
86 | }
87 |
88 | private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
89 | {
90 | Close();
91 | }
92 |
93 | #pragma warning disable IDE0052 // 删除未读的私有成员
94 | private bool windowsCreate = true;
95 | #pragma warning restore IDE0052 // 删除未读的私有成员
96 |
97 | private void Form1_Load(object sender, EventArgs e)
98 | {
99 | base.Visible = false;
100 | windowsCreate = false;
101 | string language = new System.Globalization.CultureInfo(Language.NowLanguage().ToString()).ToString();
102 | if (language == "zh-CN")
103 | {
104 | SettingsToolStripMenuItem.Text = "设置";
105 | SelfOnToolStripMenuItem.Text = "开机自启";
106 | AboutToolStripMenuItem.Text = "关于";
107 | ExitToolStripMenuItem.Text = "退出";
108 | }
109 | if (language == "zh-TW")
110 | {
111 | SettingsToolStripMenuItem.Text = "設定";
112 | SelfOnToolStripMenuItem.Text = "開機自啟";
113 | AboutToolStripMenuItem.Text = "關於";
114 | ExitToolStripMenuItem.Text = "登出";
115 | }
116 | if (language == "ja-JP")
117 | {
118 | SettingsToolStripMenuItem.Text = "設定";
119 | SelfOnToolStripMenuItem.Text = "自動スタート";
120 | AboutToolStripMenuItem.Text = "約";
121 | ExitToolStripMenuItem.Text = "終了する";
122 | }
123 | if (language == "en-US")
124 | {
125 | SettingsToolStripMenuItem.Text = "Settings";
126 | SelfOnToolStripMenuItem.Text = "Automatic start";
127 | AboutToolStripMenuItem.Text = "About";
128 | ExitToolStripMenuItem.Text = "Exit";
129 | }
130 |
131 | //获取操作系统版本
132 | ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
133 | string sCPUSerialNumber = "";
134 | foreach (ManagementObject mo in searcher.Get())
135 | {
136 | sCPUSerialNumber = mo["Name"].ToString().Trim();//获取操作系统名称
137 | }
138 | string a = sCPUSerialNumber.Substring(10, 10);
139 | //判断是否为Windows 11操作系统
140 | if (a != "Windows 11")
141 | {
142 | DialogResult error = MessageBox.Show(Language.StringText("String5"), Language.StringText("String6"), MessageBoxButtons.OK, MessageBoxIcon.Error);
143 | if (error == DialogResult.OK)
144 | {
145 | //结束程序
146 | Application.ExitThread();
147 | }
148 | }
149 |
150 | //获取界面语言
151 | try
152 | {
153 | RegistryKey key;
154 | key = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
155 |
156 | string lang = key.GetValue("Language").ToString();
157 | key.Close();
158 | }
159 | catch (Exception ex)
160 | {
161 | MessageBox.Show(Language.StringText("String8") + ex.Message, Language.StringText("String4"), MessageBoxButtons.OK, MessageBoxIcon.Error);
162 | }
163 |
164 | //新增功能注册表初始化
165 | RegistryKey key2;
166 | key2 = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
167 | string[] valueNames = key2.GetValueNames();
168 | foreach (string ValueName in valueNames)
169 | {
170 | if(ValueName != "win_qs")
171 | {
172 | key2.SetValue("win_qs", "true");
173 | key2.SetValue("app_qs", "true");
174 | key2.SetValue("win_ss", "false");
175 | key2.SetValue("app_ss", "false");
176 | }
177 | }
178 | key2.Close();
179 |
180 | //判断是否设置开机自启
181 | try
182 | {
183 | RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
184 | string exist = rk.GetValue("DarkMode").ToString();
185 | if (exist != "")
186 | {
187 | //如果存在启动项,则修改菜单选项为选中状态
188 | SelfOnToolStripMenuItem.Checked = true;
189 | }
190 | rk.Close();
191 | }
192 | catch
193 | {
194 |
195 | }
196 |
197 | //判断系统主题是否为自定义模式
198 | //bool judge = judgeSystemColor();
199 | //if (judge == true)
200 | //{
201 | // MessageBox.Show(Language.StringText("String9"), Language.StringText("String10"), MessageBoxButtons.OK, MessageBoxIcon.Information);
202 | //}
203 | //启动计时器和定时器
204 | timer1.Interval = 1000;
205 | timer1.Start();
206 | //发送通知
207 | new ToastContentBuilder()
208 | .AddArgument("action", "viewConversation")
209 | .AddArgument("conversationId", 9813)
210 | .AddText("通知")
211 | .AddText("DarkMode运行中,配置请点击DarkMode图标。")
212 | .Show();
213 | }
214 |
215 | protected bool getTimeSpan(string timeStr)
216 | {
217 | //获取设置的时间
218 | RegistryKey set = Registry.CurrentUser;
219 | RegistryKey set2 = set.OpenSubKey(@"Software\DarkMode");
220 | string start = set2.GetValue("startTime").ToString();
221 | string finish = set2.GetValue("endTime").ToString();
222 | set.Close();
223 | set2.Close();
224 | //判断当前时间是否不在工作时间段内
225 | string _strWorkingDayAM = start;//非工作时间上午08:00
226 | string _strWorkingDayPM = finish;//非工作时间下午19:00
227 | TimeSpan dspWorkingDayAM = DateTime.Parse(_strWorkingDayAM).TimeOfDay;
228 | TimeSpan dspWorkingDayPM = DateTime.Parse(_strWorkingDayPM).TimeOfDay;
229 |
230 | DateTime t1 = Convert.ToDateTime(timeStr);
231 |
232 | TimeSpan dspNow = t1.TimeOfDay;
233 | if (dspNow > dspWorkingDayAM && dspNow < dspWorkingDayPM)
234 | {
235 | return false;
236 | }
237 | return true;
238 | }
239 |
240 | private bool getSystemColor()
241 | {
242 | RegistryKey hkml = Registry.CurrentUser;
243 | RegistryKey personalize = hkml.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", true);
244 | string registDataOne = personalize.GetValue("AppsUseLightTheme").ToString();
245 | hkml.Close();
246 | personalize.Close();
247 | //检测当前是什么模式(深色返回true)
248 | if (registDataOne == "0x00000000")
249 | {
250 | return false;
251 | }
252 | return true;
253 | }
254 | private bool judgeSystemColor()
255 | {
256 | //判断系统主题是否为自定义模式
257 | RegistryKey hkml = Registry.CurrentUser;
258 | RegistryKey personalize = hkml.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", true);
259 | string registDataOne = personalize.GetValue("AppsUseLightTheme").ToString();
260 | string registDataTwo = personalize.GetValue("SystemUsesLightTheme").ToString();
261 | hkml.Close();
262 | personalize.Close();
263 | if (registDataOne != registDataTwo)
264 | {
265 | return true;
266 | }
267 | return false;
268 | }
269 |
270 | private void timer1_Tick(object sender, EventArgs e)
271 | {
272 | //获取当前主题色是否对应(接口)
273 | //bool nowColor = getSystemColor();
274 | //获取当前时间是否在区间
275 | bool Now = getTimeSpan(DateTime.Now.ToShortTimeString().ToString());
276 | //判断修改主题色
277 | if (Now == true)
278 | {
279 | //深色
280 | RegistryKey hkml = Registry.CurrentUser;
281 | RegistryKey personalize = hkml.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", true);
282 |
283 | RegistryKey key;
284 | key = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
285 | //自定义颜色模式
286 | if(key.GetValue("win_ss").ToString() == "false")
287 | {
288 | personalize.SetValue("SystemUsesLightTheme", 0x00000000);
289 | }
290 | else
291 | {
292 | personalize.SetValue("SystemUsesLightTheme", 0x00000001);
293 | }
294 | if (key.GetValue("app_ss").ToString() == "false")
295 | {
296 | personalize.SetValue("AppsUseLightTheme", 0x00000000);
297 | }
298 | else
299 | {
300 | personalize.SetValue("AppsUseLightTheme", 0x00000001);
301 | }
302 | //原生壁纸设置
303 | string dark_ys = key.GetValue("dark_ys").ToString();
304 | RegistryKey key2;
305 | key2 = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true);
306 | if (dark_ys != "")
307 | {
308 | key2.SetValue("WallPaper", dark_ys);
309 | }
310 | //Wallpaper Engine壁纸设置
311 | RegistryKey key3;
312 | key3 = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
313 | string dark_we = key3.GetValue("dark_we").ToString();
314 | string isdark = key3.GetValue("IsDark").ToString();
315 | if (dark_we != "")
316 | {
317 | if (isdark == "true")
318 | {
319 | CmdCommit.CmdCommandLight(dark_we);
320 | RegistryKey set;
321 | set = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
322 | set.SetValue("IsDark", "false");
323 | }
324 | }
325 | hkml.Close();
326 | personalize.Close();
327 | key.Close();
328 | key2.Close();
329 | key3.Close();
330 | }
331 | else
332 | {
333 | //浅色
334 | RegistryKey hkml = Registry.CurrentUser;
335 | RegistryKey personalize = hkml.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", true);
336 |
337 | RegistryKey key;
338 | key = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
339 | //自定义颜色模式
340 | if (key.GetValue("win_qs").ToString() == "true")
341 | {
342 | personalize.SetValue("SystemUsesLightTheme", 0x00000001);
343 | }
344 | else
345 | {
346 | personalize.SetValue("SystemUsesLightTheme", 0x00000000);
347 | }
348 | if (key.GetValue("app_qs").ToString() == "true")
349 | {
350 | personalize.SetValue("AppsUseLightTheme", 0x00000001);
351 | }
352 | else
353 | {
354 | personalize.SetValue("AppsUseLightTheme", 0x00000000);
355 | }
356 | //原生壁纸设置
357 | string light_ys = key.GetValue("light_ys").ToString();
358 | RegistryKey key2;
359 | key2 = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true);
360 | if (light_ys != "")
361 | {
362 | key2.SetValue("WallPaper", light_ys);
363 | }
364 | //Wallpaper Engine壁纸设置
365 | RegistryKey key3;
366 | key3 = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
367 | string light_we = key3.GetValue("light_we").ToString();
368 | string isdark = key3.GetValue("IsDark").ToString();
369 | if (light_we != "")
370 | {
371 | if (isdark == "false")
372 | {
373 | CmdCommit.CmdCommandLight(light_we);
374 | RegistryKey set;
375 | set = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
376 | set.SetValue("IsDark", "true");
377 | }
378 | }
379 | hkml.Close();
380 | personalize.Close();
381 | key.Close();
382 | key2.Close();
383 | key3.Close();
384 | }
385 | }
386 |
387 | private void 设置ToolStripMenuItem_Click(object sender, EventArgs e)
388 | {
389 | Form form2 = new Form2();
390 | form2.Text = Language.Form2Lang("String15");
391 | form2.ShowDialog();
392 | }
393 |
394 | private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
395 | {
396 | Form form2 = new Form2();
397 | form2.Text = Language.Form2Lang("String15");
398 | form2.ShowDialog();
399 | }
400 | }
401 | }
402 |
--------------------------------------------------------------------------------
/DarkMode/Form2.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 | using System;
3 | using System.Device.Location;
4 | using System.Diagnostics;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 |
8 |
9 | namespace DarkMode
10 | {
11 | public partial class Form2 : Form
12 | {
13 | public Form2()
14 | {
15 | InitializeComponent();
16 | System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Language.NowLanguage().ToString());
17 | }
18 |
19 | private void button1_Click(object sender, EventArgs e)
20 | {
21 | //写入时间数据到注册表
22 | string startTime = dateTimePicker1.Text.ToString();
23 | string endTime = dateTimePicker2.Text.ToString();
24 | string SunRiseSet = checkBox1.Checked.ToString();
25 | RegistryKey set = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
26 | set.SetValue("startTime", startTime);
27 | set.SetValue("endTime", endTime);
28 | set.SetValue("SunRiseSet", SunRiseSet);
29 | set.Close();
30 | }
31 |
32 | private void button2_Click(object sender, EventArgs e)
33 | {
34 | MessageBox.Show(StringText("String1"), StringText("String2"), MessageBoxButtons.OK, MessageBoxIcon.Information);
35 | //写入语言数据到注册表
36 | RegistryKey lang = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
37 | if (radioButton1.Checked == true)
38 | {
39 | lang.SetValue("Language", "zh-CN");
40 | }
41 | if (radioButton2.Checked == true)
42 | {
43 | lang.SetValue("Language", "zh-TW");
44 | }
45 | if (radioButton3.Checked == true)
46 | {
47 | lang.SetValue("Language", "ja-JP");
48 | }
49 | if (radioButton4.Checked == true)
50 | {
51 | lang.SetValue("Language", "en-US");
52 | }
53 | lang.Close();
54 | Process.Start(Application.ExecutablePath);
55 | Process.GetCurrentProcess().Kill();
56 | }
57 |
58 | private void Form2_Load(object sender, EventArgs e)
59 | {
60 | //语言设置
61 | tabPage1.Text = Language.Form2Lang("String1");
62 | label1.Text = Language.Form2Lang("String2");
63 | label2.Text = Language.Form2Lang("String3");
64 | label4.Text = Language.Form2Lang("String4");
65 | tabPage2.Text = Language.Form2Lang("String5");
66 | label3.Text = Language.Form2Lang("String6");
67 | tabPage3.Text = Language.Form2Lang("String7");
68 | groupBox1.Text = Language.Form2Lang("String8");
69 | label7.Text = Language.Form2Lang("String9");
70 | label8.Text = Language.Form2Lang("String10");
71 | label10.Text = Language.Form2Lang("String9");
72 | label9.Text = Language.Form2Lang("String10");
73 | groupBox2.Text = Language.Form2Lang("String11");
74 | label12.Text = Language.Form2Lang("String12");
75 | button3.Text = Language.Form2Lang("String13");
76 | button4.Text = Language.Form2Lang("String13");
77 | button5.Text = Language.Form2Lang("String13");
78 | button6.Text = Language.Form2Lang("String13");
79 | button1.Text = Language.Form2Lang("String14");
80 | button2.Text = Language.Form2Lang("String14");
81 | button7.Text = Language.Form2Lang("String14");
82 | button8.Text = Language.Form2Lang("String14");
83 | Text = Language.Form2Lang("String15");
84 | tabPage4.Text = Language.Form2Lang("String16");
85 | groupBox3.Text = Language.Form2Lang("String17");
86 | groupBox4.Text = Language.Form2Lang("String18");
87 | groupBox5.Text = Language.Form2Lang("String19");
88 | groupBox6.Text = Language.Form2Lang("String20");
89 | radioButton5.Text = Language.Form2Lang("String21");
90 | radioButton8.Text = Language.Form2Lang("String21");
91 | radioButton10.Text = Language.Form2Lang("String21");
92 | radioButton12.Text = Language.Form2Lang("String21");
93 | radioButton6.Text = Language.Form2Lang("String22");
94 | radioButton7.Text = Language.Form2Lang("String22");
95 | radioButton9.Text = Language.Form2Lang("String22");
96 | radioButton11.Text = Language.Form2Lang("String22");
97 |
98 |
99 | //初始化组件获取注册表值
100 | RegistryKey key;
101 | key = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
102 | dateTimePicker1.Text = key.GetValue("startTime").ToString();
103 | dateTimePicker2.Text = key.GetValue("endTime").ToString();
104 | textBox1.Text = key.GetValue("light_ys").ToString();
105 | textBox2.Text = key.GetValue("dark_ys").ToString();
106 | textBox3.Text = key.GetValue("light_we").ToString();
107 | textBox4.Text = key.GetValue("dark_we").ToString();
108 |
109 | if (key.GetValue("SunRiseSet").ToString() == "True")
110 | {
111 | bool x = true;
112 | checkBox1.Checked = x;
113 | dateTimePicker1.Enabled = false;
114 | dateTimePicker2.Enabled = false;
115 | }
116 | else
117 | {
118 | bool x = false;
119 | checkBox1.Checked = x;
120 | dateTimePicker1.Enabled = true;
121 | dateTimePicker2.Enabled = true;
122 | }
123 | if (key.GetValue("Language").ToString() == "zh-CN")
124 | {
125 | radioButton1.Checked = true;
126 | }
127 | if (key.GetValue("Language").ToString() == "zh-TW")
128 | {
129 | radioButton2.Checked = true;
130 | }
131 | if (key.GetValue("Language").ToString() == "ja-JP")
132 | {
133 | radioButton3.Checked = true;
134 | }
135 | if (key.GetValue("Language").ToString() == "en-US")
136 | {
137 | radioButton4.Checked = true;
138 | }
139 | if(key.GetValue("win_qs").ToString() == "true")
140 | {
141 | radioButton5.Checked = true;
142 | }
143 | else
144 | {
145 | radioButton6.Checked = true;
146 | }
147 | if (key.GetValue("app_qs").ToString() == "true")
148 | {
149 | radioButton8.Checked = true;
150 | }
151 | else
152 | {
153 | radioButton7.Checked = true;
154 | }
155 | if (key.GetValue("win_ss").ToString() == "false")
156 | {
157 | radioButton9.Checked = true;
158 | }
159 | else
160 | {
161 | radioButton10.Checked = true;
162 | }
163 | if (key.GetValue("app_ss").ToString() == "false")
164 | {
165 | radioButton11.Checked = true;
166 | }
167 | else
168 | {
169 | radioButton12.Checked = true;
170 | }
171 | key.Close();
172 | }
173 | //语言类
174 | public static string StringText(string str)
175 | {
176 | string language = Registry.GetValue("HKEY_CURRENT_USER\\Software\\DarkMode", "Language", "").ToString();
177 | if (language == "zh-CN" && str == "String1")
178 | {
179 | return "点击确定后,重启程序生效。";
180 | }
181 | if (language == "zh-TW" && str == "String1")
182 | {
183 | return "點擊確定後,重啓程式生效。";
184 | }
185 | if (language == "ja-JP" && str == "String1")
186 | {
187 | return "[OK]をクリックした後、ソフトウェアを再起動して有効にします。";
188 | }
189 | if (language == "en-US" && str == "String1")
190 | {
191 | return "After clicking OK, restart the software to take effect.";
192 | }
193 |
194 | if (language == "zh-CN" && str == "String2")
195 | {
196 | return "提示";
197 | }
198 | if (language == "zh-TW" && str == "String2")
199 | {
200 | return "提示";
201 | }
202 | if (language == "ja-JP" && str == "String2")
203 | {
204 | return "ソフト";
205 | }
206 | if (language == "en-US" && str == "String2")
207 | {
208 | return "Tips";
209 | }
210 | if (language == "zh-CN" && str == "String3")
211 | {
212 | return "经度:";
213 | }
214 | if (language == "zh-TW" && str == "String3")
215 | {
216 | return "經度:";
217 | }
218 | if (language == "ja-JP" && str == "String3")
219 | {
220 | return "経度:";
221 | }
222 | if (language == "en-US" && str == "String3")
223 | {
224 | return "Longitude: ";
225 | }
226 | if (language == "zh-CN" && str == "String4")
227 | {
228 | return "纬度:";
229 | }
230 | if (language == "zh-TW" && str == "String4")
231 | {
232 | return "緯度:";
233 | }
234 | if (language == "ja-JP" && str == "String4")
235 | {
236 | return "緯度:";
237 | }
238 | if (language == "en-US" && str == "String4")
239 | {
240 | return "Latitude: ";
241 | }
242 | //5
243 | if (language == "zh-CN" && str == "String5")
244 | {
245 | return "获取超时";
246 | }
247 | if (language == "zh-TW" && str == "String5")
248 | {
249 | return "獲取超時";
250 | }
251 | if (language == "ja-JP" && str == "String5")
252 | {
253 | return "タイムアウト";
254 | }
255 | if (language == "en-US" && str == "String5")
256 | {
257 | return "Time out";
258 | }
259 | if (language == "zh-CN" && str == "String6")
260 | {
261 | return "地址:";
262 | }
263 | if (language == "zh-TW" && str == "String6")
264 | {
265 | return "地址:";
266 | }
267 | if (language == "ja-JP" && str == "String6")
268 | {
269 | return "住所:";
270 | }
271 | if (language == "en-US" && str == "String6")
272 | {
273 | return "Address: ";
274 | }
275 | return "null";
276 |
277 |
278 | }
279 |
280 |
281 | GeoCoordinateWatcher watcher;
282 |
283 | public void GetLocationEvent()
284 | {
285 | watcher = new GeoCoordinateWatcher();
286 | watcher.PositionChanged += new EventHandler>(watcher_PositionChanged);
287 | bool started = watcher.TryStart(false, TimeSpan.FromMilliseconds(2000));
288 | if (!started)
289 | {
290 | label5.Text = StringText("String5");
291 | }
292 | }
293 |
294 | void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs e)
295 | {
296 | PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude);
297 |
298 | }
299 |
300 | async void PrintPosition(double Latitude, double Longitude)
301 | {
302 | IPAddress iP = new IPAddress();
303 | SunTimeResult result = SunTimes.GetSunTime(DateTime.Now, double.Parse(Longitude.ToString()), double.Parse(Latitude.ToString()));
304 | RegistryKey set = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
305 | try
306 | {
307 | await Task.Run(() =>
308 | {
309 | label5.Text = StringText("String3") + Longitude.ToString() + "\n" + StringText("String4") + Latitude.ToString() + "\n" + "IP: " + iP.IP() + "\n" + StringText("String6") + iP.Address();
310 | watcher.Dispose();
311 | set.SetValue("startTime", result.SunriseTime.ToString("HH:mm:ss"));
312 | set.SetValue("endTime", result.SunsetTime.ToString("HH:mm:ss"));
313 | dateTimePicker1.Text = set.GetValue("startTime").ToString();
314 | dateTimePicker2.Text = set.GetValue("endTime").ToString();
315 | });
316 | }
317 | catch { }
318 | }
319 | private void checkBox1_CheckedChanged(object sender, EventArgs e)
320 | {
321 | if (checkBox1.Checked == true)
322 | {
323 | dateTimePicker1.Enabled = false;
324 | dateTimePicker2.Enabled = false;
325 | GetLocationEvent();
326 | }
327 | else
328 | {
329 | dateTimePicker1.Enabled = true;
330 | dateTimePicker2.Enabled = true;
331 | label5.Text = null;
332 | }
333 |
334 |
335 | }
336 |
337 | private void button3_Click(object sender, EventArgs e)
338 | {
339 | OpenFileDialog ofd = new OpenFileDialog();
340 | ofd.Filter = "图片文件|*.jpg;*.jpeg;*.bmp;*.dib;*.png;*.jfif;*.jpe;*.gif;*.tif;*.tiff;*.wdp;*.heic;*.heif;*.heics;*.heifs;*.hif;*.avci;*.avcs;*.avif;*.avifs;";
341 | ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
342 | if (ofd.ShowDialog() == DialogResult.OK)
343 | {
344 | textBox1.Text = ofd.FileName;
345 | }
346 | else
347 | {
348 | textBox1.Text = null;
349 | }
350 | }
351 |
352 | private void button4_Click(object sender, EventArgs e)
353 | {
354 | OpenFileDialog ofd = new OpenFileDialog();
355 | ofd.Filter = "图片文件|*.jpg;*.jpeg;*.bmp;*.dib;*.png;*.jfif;*.jpe;*.gif;*.tif;*.tiff;*.wdp;*.heic;*.heif;*.heics;*.heifs;*.hif;*.avci;*.avcs;*.avif;*.avifs;";
356 | ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
357 | if (ofd.ShowDialog() == DialogResult.OK)
358 | {
359 | textBox2.Text = ofd.FileName;
360 | }
361 | else
362 | {
363 | textBox2.Text = null;
364 | }
365 | }
366 |
367 | private void button6_Click(object sender, EventArgs e)
368 | {
369 | OpenFileDialog ofd = new OpenFileDialog();
370 | ofd.Filter = "json文件|*.json;";
371 | ofd.InitialDirectory = CmdCommit.WallpaperPath();
372 | if (ofd.ShowDialog() == DialogResult.OK)
373 | {
374 | textBox4.Text = ofd.FileName;
375 | }
376 | else
377 | {
378 | textBox4.Text = null;
379 | }
380 | }
381 |
382 | private void button5_Click(object sender, EventArgs e)
383 | {
384 | OpenFileDialog ofd = new OpenFileDialog();
385 | ofd.Filter = "json文件|*.json;";
386 | ofd.InitialDirectory = CmdCommit.WallpaperPath();
387 | if (ofd.ShowDialog() == DialogResult.OK)
388 | {
389 | textBox3.Text = ofd.FileName;
390 | }
391 | else
392 | {
393 | textBox3.Text = null;
394 | }
395 | }
396 |
397 | private void button7_Click(object sender, EventArgs e)
398 | {
399 | //原生壁纸设置
400 | RegistryKey Wallpaper = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
401 | if(textBox1.Text != "")
402 | {
403 | Wallpaper.SetValue("light_ys", textBox1.Text);
404 | }
405 | if(textBox2.Text != "")
406 | {
407 | Wallpaper.SetValue("dark_ys", textBox2.Text);
408 | }
409 | //Wallpaper Engine壁纸设置
410 | RegistryKey WE = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
411 | if (textBox1.Text != "")
412 | {
413 | WE.SetValue("light_we", textBox3.Text);
414 | }
415 | if (textBox2.Text != "")
416 | {
417 | WE.SetValue("dark_we", textBox4.Text);
418 | }
419 |
420 | }
421 |
422 | private void label12_Click(object sender, EventArgs e)
423 | {
424 | Process.Start("explorer.exe", "https://github.com/Melon-Studio/DarkMode/wiki/wallpaper-engine%E5%A3%81%E7%BA%B8%E8%AE%BE%E7%BD%AE");
425 | }
426 |
427 | //自定义模式设置
428 | private void button8_Click(object sender, EventArgs e)
429 | {
430 | RegistryKey key;
431 | key = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode", true);
432 | //windows模式(浅色)
433 | if (radioButton5.Checked == true)
434 | {
435 | key.SetValue("win_qs", "true");
436 | }
437 | else
438 | {
439 | key.SetValue("win_qs", "false");
440 | }
441 | //App模式(浅色)
442 | if (radioButton8.Checked == true)
443 | {
444 | key.SetValue("app_qs", "true");
445 | }
446 | else
447 | {
448 | key.SetValue("app_qs", "false");
449 | }
450 | //windows模式(深色)
451 | if (radioButton9.Checked == true)
452 | {
453 | key.SetValue("win_ss", "false");
454 | }
455 | else
456 | {
457 | key.SetValue("win_ss", "true");
458 | }
459 | //App模式(深色)
460 | if (radioButton11.Checked == true)
461 | {
462 | key.SetValue("app_ss", "false");
463 | }
464 | else
465 | {
466 | key.SetValue("app_ss", "true");
467 | }
468 | }
469 |
470 |
471 |
472 | }
473 | }
474 |
--------------------------------------------------------------------------------
/DarkMode/Language.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 |
3 | namespace DarkMode
4 | {
5 | internal class Language
6 | {
7 | public static string NowLanguage()
8 | {
9 | RegistryKey set = Registry.CurrentUser.OpenSubKey(@"Software\DarkMode");
10 | string lang = set.GetValue("Language").ToString();
11 | return lang;
12 | }
13 | //语言类
14 | public static string StringText(string str)
15 | {
16 | string language = Registry.GetValue("HKEY_CURRENT_USER\\Software\\DarkMode", "Language", "").ToString();
17 | //zh-CN
18 | if (language == "zh-CN" && str == "String1")
19 | {
20 | return "作者:Melon Studio - XiaoFans";
21 | }
22 | if (language == "zh-CN" && str == "String2")
23 | {
24 | return "关于";
25 | }
26 | if (language == "zh-CN" && str == "String3")
27 | {
28 | return "设置失败:";
29 | }
30 | if (language == "zh-CN" && str == "String4")
31 | {
32 | return "错误";
33 | }
34 | if (language == "zh-CN" && str == "String5")
35 | {
36 | return "本程序仅支持Windows 11操作系统,请升级为Windows 11后使用。";
37 | }
38 | if (language == "zh-CN" && str == "String6")
39 | {
40 | return "暂不支持您的电脑";
41 | }
42 | if (language == "zh-CN" && str == "String7")
43 | {
44 | return "注册表初始化失败。错误信息:";
45 | }
46 | if (language == "zh-CN" && str == "String8")
47 | {
48 | return "读取注册表语言失败。错误信息:";
49 | }
50 | if (language == "zh-CN" && str == "String9")
51 | {
52 | return "检测到系统设置了系统颜色模式为自定义,软件将修改您的自定义模式。";
53 | }
54 | if (language == "zh-CN" && str == "String10")
55 | {
56 | return "提示";
57 | }
58 | if(language == "zh-CN" && str == "String11")
59 | {
60 | return "DarkMode已进入后台";
61 | }
62 | if (language == "zh-CN" && str == "String12")
63 | {
64 | return "DarkMode已进入后台,设置请右键托盘栏图标。";
65 | }
66 | //zh-TW
67 | if (language == "zh-TW" && str == "String1")
68 | {
69 | return "作者:Melon Studio - XiaoFans";
70 | }
71 | if (language == "zh-TW" && str == "String2")
72 | {
73 | return "關於";
74 | }
75 | if (language == "zh-TW" && str == "String3")
76 | {
77 | return "設定失敗:";
78 | }
79 | if (language == "zh-TW" && str == "String4")
80 | {
81 | return "錯誤";
82 | }
83 | if (language == "zh-TW" && str == "String5")
84 | {
85 | return "本程式僅支持Windows 11作業系統,請陞級為Windows 11後使用。";
86 | }
87 | if (language == "zh-TW" && str == "String6")
88 | {
89 | return "暫不支持您的電腦";
90 | }
91 | if (language == "zh-TW" && str == "String7")
92 | {
93 | return "電腦資料庫初始化失敗。 錯誤資訊:";
94 | }
95 | if (language == "zh-TW" && str == "String8")
96 | {
97 | return "讀取電腦資料庫語言失敗。 錯誤資訊:";
98 | }
99 | if (language == "zh-TW" && str == "String9")
100 | {
101 | return "檢測到系統設置了系統顏色模式為自定義,軟體將修改您的自定義模式。";
102 | }
103 | if (language == "zh-TW" && str == "String10")
104 | {
105 | return "提示";
106 | }
107 | if (language == "zh-TW" && str == "String11")
108 | {
109 | return "DarkMode已進入後台";
110 | }
111 | if (language == "zh-TW" && str == "String12")
112 | {
113 | return "DarkMode已進入後台,設置請右鍵托盤欄圖標。";
114 | }
115 | //ja-JP
116 | if (language == "ja-JP" && str == "String1")
117 | {
118 | return "作成者:Melon Studio - XiaoFans";
119 | }
120 | if (language == "ja-JP" && str == "String2")
121 | {
122 | return "について";
123 | }
124 | if (language == "ja-JP" && str == "String3")
125 | {
126 | return "設定に失敗しました:";
127 | }
128 | if (language == "ja-JP" && str == "String4")
129 | {
130 | return "エラー";
131 | }
132 | if (language == "ja-JP" && str == "String5")
133 | {
134 | return "本プログラムはWindows 11オペレーティングシステムのみをサポートしておりますので、Windows 11にアップグレードしてご利用ください。";
135 | }
136 | if (language == "ja-JP" && str == "String6")
137 | {
138 | return "お客様のPCのサポートは保留中です";
139 | }
140 | if (language == "ja-JP" && str == "String7")
141 | {
142 | return "レジストリの初期化に失敗しました。エラーメッセージ:";
143 | }
144 | if (language == "ja-JP" && str == "String8")
145 | {
146 | return "レジストリ言語の読み取りに失敗しました。エラーメッセージ:";
147 | }
148 | if (language == "ja-JP" && str == "String9")
149 | {
150 | return "システムのカラーモードがカスタムに設定されていることが検出され、ソフトウェアはカスタムモードを変更します。";
151 | }
152 | if (language == "ja-JP" && str == "String10")
153 | {
154 | return "ヒント";
155 | }
156 | if (language == "ja-JP" && str == "String11")
157 | {
158 | return "DarkModeがバックグラウンドになりました";
159 | }
160 | if (language == "ja-JP" && str == "String12")
161 | {
162 | return "DarkModeが背景に入ったので、トレイアイコンを右クリックして設定してください。";
163 | }
164 | //en-US
165 | if (language == "en-US" && str == "String1")
166 | {
167 | return "Author: Melon Studio - XiaoFans";
168 | }
169 | if (language == "en-US" && str == "String2")
170 | {
171 | return "About";
172 | }
173 | if (language == "en-US" && str == "String3")
174 | {
175 | return "Setting failed: ";
176 | }
177 | if (language == "en-US" && str == "String4")
178 | {
179 | return "Error";
180 | }
181 | if (language == "en-US" && str == "String5")
182 | {
183 | return "This program only supports windows 11 operating system. Please upgrade to windows 11 before using.";
184 | }
185 | if (language == "en-US" && str == "String6")
186 | {
187 | return "Your computer is temporarily not supported";
188 | }
189 | if (language == "en-US" && str == "String7")
190 | {
191 | return "Registry initialization failed. Error message:";
192 | }
193 | if (language == "en-US" && str == "String8")
194 | {
195 | return "Failed to read registry language. Error message:";
196 | }
197 | if (language == "en-US" && str == "String9")
198 | {
199 | return "It is detected that the system has set the system color mode as custom, and the software will modify your custom mode.";
200 | }
201 | if (language == "en-US" && str == "String10")
202 | {
203 | return "Tips";
204 | }
205 | if (language == "en-US" && str == "String11")
206 | {
207 | return "DarkMode has gone into the background";
208 | }
209 | if (language == "en-US" && str == "String12")
210 | {
211 | return "DarkMode has entered the background, please right-click the tray icon to set.";
212 | }
213 | return "null";
214 | }
215 | public static string Form2Lang(string str)
216 | {
217 | string language = Registry.GetValue("HKEY_CURRENT_USER\\Software\\DarkMode", "Language", "").ToString();
218 | //zh-CN
219 | if (language == "zh-CN" && str == "String1")
220 | {
221 | return "时间";
222 | }
223 | if (language == "zh-CN" && str == "String2")
224 | {
225 | return "开始时间(浅色模式)";
226 | }
227 | if (language == "zh-CN" && str == "String3")
228 | {
229 | return "结束时间(浅色模式)";
230 | }
231 | if (language == "zh-CN" && str == "String4")
232 | {
233 | return "日出日落模式";
234 | }
235 | if (language == "zh-CN" && str == "String5")
236 | {
237 | return "语言";
238 | }
239 | if (language == "zh-CN" && str == "String6")
240 | {
241 | return "部分翻译为机器翻译";
242 | }
243 | if (language == "zh-CN" && str == "String7")
244 | {
245 | return "壁纸";
246 | }
247 | if (language == "zh-CN" && str == "String8")
248 | {
249 | return "原生壁纸";
250 | }
251 | if (language == "zh-CN" && str == "String9")
252 | {
253 | return "浅色时";
254 | }
255 | if (language == "zh-CN" && str == "String10")
256 | {
257 | return "深色时";
258 | }
259 | if (language == "zh-CN" && str == "String11")
260 | {
261 | return "Wallpaper Engine 壁纸";
262 | }
263 | if (language == "zh-CN" && str == "String12")
264 | {
265 | return "设置文档";
266 | }
267 | if (language == "zh-CN" && str == "String13")
268 | {
269 | return "浏览";
270 | }
271 | if (language == "zh-CN" && str == "String14")
272 | {
273 | return "保存";
274 | }
275 | if (language == "zh-CN" && str == "String15")
276 | {
277 | return "设置";
278 | }
279 | if (language == "zh-CN" && str == "String16")
280 | {
281 | return "自定义";
282 | }
283 | if (language == "zh-CN" && str == "String17")
284 | {
285 | return "浅色时 Windows 模式";
286 | }
287 | if (language == "zh-CN" && str == "String18")
288 | {
289 | return "浅色时应用模式";
290 | }
291 | if (language == "zh-CN" && str == "String19")
292 | {
293 | return "深色时 Windows 模式";
294 | }
295 | if (language == "zh-CN" && str == "String20")
296 | {
297 | return "深色时应用模式";
298 | }
299 | if (language == "zh-CN" && str == "String21")
300 | {
301 | return "浅色";
302 | }
303 | if (language == "zh-CN" && str == "String22")
304 | {
305 | return "深色";
306 | }
307 | //zh-TW
308 | if (language == "zh-TW" && str == "String1")
309 | {
310 | return "時間";
311 | }
312 | if (language == "zh-TW" && str == "String2")
313 | {
314 | return "開始時間(淺色模式)";
315 | }
316 | if (language == "zh-TW" && str == "String3")
317 | {
318 | return "結束時間(淺色模式)";
319 | }
320 | if (language == "zh-TW" && str == "String4")
321 | {
322 | return "日出日落模式";
323 | }
324 | if (language == "zh-TW" && str == "String5")
325 | {
326 | return "語言";
327 | }
328 | if (language == "zh-TW" && str == "String6")
329 | {
330 | return "部分翻譯為機器翻譯";
331 | }
332 | if (language == "zh-TW" && str == "String7")
333 | {
334 | return "壁紙";
335 | }
336 | if (language == "zh-TW" && str == "String8")
337 | {
338 | return "原生壁紙";
339 | }
340 | if (language == "zh-TW" && str == "String9")
341 | {
342 | return "淺色時";
343 | }
344 | if (language == "zh-TW" && str == "String10")
345 | {
346 | return "深色時";
347 | }
348 | if (language == "zh-TW" && str == "String11")
349 | {
350 | return "Wallpaper Engine 壁紙";
351 | }
352 | if (language == "zh-TW" && str == "String12")
353 | {
354 | return "設定文檔";
355 | }
356 | if (language == "zh-TW" && str == "String13")
357 | {
358 | return "瀏覽";
359 | }
360 | if (language == "zh-TW" && str == "String14")
361 | {
362 | return "保存";
363 | }
364 | if (language == "zh-TW" && str == "String15")
365 | {
366 | return "設定";
367 | }
368 | if (language == "zh-TW" && str == "String16")
369 | {
370 | return "個性化";
371 | }
372 | if (language == "zh-TW" && str == "String17")
373 | {
374 | return "淺色時 Windows 模式";
375 | }
376 | if (language == "zh-TW" && str == "String18")
377 | {
378 | return "淺色時應用程式模式";
379 | }
380 | if (language == "zh-TW" && str == "String19")
381 | {
382 | return "深色時 Windows 模式";
383 | }
384 | if (language == "zh-TW" && str == "String20")
385 | {
386 | return "深色時應用程式模式";
387 | }
388 | if (language == "zh-TW" && str == "String21")
389 | {
390 | return "淺色";
391 | }
392 | if (language == "zh-TW" && str == "String22")
393 | {
394 | return "深色";
395 | }
396 | //ja-JP
397 | if (language == "ja-JP" && str == "String1")
398 | {
399 | return "時間";
400 | }
401 | if (language == "ja-JP" && str == "String2")
402 | {
403 | return "開始時間(ライトモード)";
404 | }
405 | if (language == "ja-JP" && str == "String3")
406 | {
407 | return "終了時間(ライトモード)";
408 | }
409 | if (language == "ja-JP" && str == "String4")
410 | {
411 | return "サンライズサンセットモード";
412 | }
413 | if (language == "ja-JP" && str == "String5")
414 | {
415 | return "言語";
416 | }
417 | if (language == "ja-JP" && str == "String6")
418 | {
419 | return "部分的に機械翻訳に翻訳";
420 | }
421 | if (language == "ja-JP" && str == "String7")
422 | {
423 | return "壁紙";
424 | }
425 | if (language == "ja-JP" && str == "String8")
426 | {
427 | return "ネイティブ壁紙";
428 | }
429 | if (language == "ja-JP" && str == "String9")
430 | {
431 | return "明色時";
432 | }
433 | if (language == "ja-JP" && str == "String10")
434 | {
435 | return "暗色時";
436 | }
437 | if (language == "ja-JP" && str == "String11")
438 | {
439 | return "Wallpaper Engine 壁紙";
440 | }
441 | if (language == "ja-JP" && str == "String12")
442 | {
443 | return "セットアップドキュメント";
444 | }
445 | if (language == "ja-JP" && str == "String13")
446 | {
447 | return "検索";
448 | }
449 | if (language == "ja-JP" && str == "String14")
450 | {
451 | return "保存";
452 | }
453 | if (language == "ja-JP" && str == "String15")
454 | {
455 | return "設定";
456 | }
457 | if (language == "ja-JP" && str == "String16")
458 | {
459 | return "自设";
460 | }
461 | if (language == "ja-JP" && str == "String17")
462 | {
463 | return "明るい色の Windows モード";
464 | }
465 | if (language == "ja-JP" && str == "String18")
466 | {
467 | return "淡色用ソフトウェアモード";
468 | }
469 | if (language == "ja-JP" && str == "String19")
470 | {
471 | return "暗闇での Windows モード";
472 | }
473 | if (language == "ja-JP" && str == "String20")
474 | {
475 | return "暗いときのソフトウェアモード";
476 | }
477 | if (language == "ja-JP" && str == "String21")
478 | {
479 | return "明色";
480 | }
481 | if (language == "ja-JP" && str == "String22")
482 | {
483 | return "暗い";
484 | }
485 | //en-US
486 | if (language == "en-US" && str == "String1")
487 | {
488 | return "Time";
489 | }
490 | if (language == "en-US" && str == "String2")
491 | {
492 | return "Start time(light mode)";
493 | }
494 | if (language == "en-US" && str == "String3")
495 | {
496 | return "End time(dark mode)";
497 | }
498 | if (language == "en-US" && str == "String4")
499 | {
500 | return "Sunrise Sunset Mode";
501 | }
502 | if (language == "en-US" && str == "String5")
503 | {
504 | return "Language";
505 | }
506 | if (language == "en-US" && str == "String6")
507 | {
508 | return "Partial machine translation";
509 | }
510 | if (language == "en-US" && str == "String7")
511 | {
512 | return "wallpaper";
513 | }
514 | if (language == "en-US" && str == "String8")
515 | {
516 | return "native wallpaper";
517 | }
518 | if (language == "en-US" && str == "String9")
519 | {
520 | return "light";
521 | }
522 | if (language == "en-US" && str == "String10")
523 | {
524 | return "dark";
525 | }
526 | if (language == "en-US" && str == "String11")
527 | {
528 | return "Wallpaper Engine";
529 | }
530 | if (language == "en-US" && str == "String12")
531 | {
532 | return "setup document";
533 | }
534 | if (language == "en-US" && str == "String13")
535 | {
536 | return "Browse";
537 | }
538 | if (language == "en-US" && str == "String14")
539 | {
540 | return "Save";
541 | }
542 | if (language == "en-US" && str == "String15")
543 | {
544 | return "Settings";
545 | }
546 | if (language == "en-US" && str == "String16")
547 | {
548 | return "customize";
549 | }
550 | if (language == "en-US" && str == "String17")
551 | {
552 | return "Windows mode in light";
553 | }
554 | if (language == "en-US" && str == "String18")
555 | {
556 | return "APP mode when light color";
557 | }
558 | if (language == "en-US" && str == "String19")
559 | {
560 | return "Windows mode in dark";
561 | }
562 | if (language == "en-US" && str == "String20")
563 | {
564 | return "APP mode when dark";
565 | }
566 | if (language == "en-US" && str == "String21")
567 | {
568 | return "Light";
569 | }
570 | if (language == "en-US" && str == "String22")
571 | {
572 | return "Dark";
573 | }
574 | return null;
575 | }
576 | }
577 |
578 | }
579 |
--------------------------------------------------------------------------------
/DarkMode/Form2.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace DarkMode
2 | {
3 | partial class Form2
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form2));
32 | this.tab1 = new System.Windows.Forms.TabControl();
33 | this.tabPage1 = new System.Windows.Forms.TabPage();
34 | this.label5 = new System.Windows.Forms.Label();
35 | this.label4 = new System.Windows.Forms.Label();
36 | this.checkBox1 = new System.Windows.Forms.CheckBox();
37 | this.button1 = new System.Windows.Forms.Button();
38 | this.label2 = new System.Windows.Forms.Label();
39 | this.dateTimePicker2 = new System.Windows.Forms.DateTimePicker();
40 | this.label1 = new System.Windows.Forms.Label();
41 | this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
42 | this.tabPage2 = new System.Windows.Forms.TabPage();
43 | this.label3 = new System.Windows.Forms.Label();
44 | this.button2 = new System.Windows.Forms.Button();
45 | this.radioButton4 = new System.Windows.Forms.RadioButton();
46 | this.radioButton3 = new System.Windows.Forms.RadioButton();
47 | this.radioButton2 = new System.Windows.Forms.RadioButton();
48 | this.radioButton1 = new System.Windows.Forms.RadioButton();
49 | this.tabPage3 = new System.Windows.Forms.TabPage();
50 | this.button7 = new System.Windows.Forms.Button();
51 | this.groupBox2 = new System.Windows.Forms.GroupBox();
52 | this.label12 = new System.Windows.Forms.Label();
53 | this.textBox4 = new System.Windows.Forms.TextBox();
54 | this.textBox3 = new System.Windows.Forms.TextBox();
55 | this.button5 = new System.Windows.Forms.Button();
56 | this.button6 = new System.Windows.Forms.Button();
57 | this.label9 = new System.Windows.Forms.Label();
58 | this.label10 = new System.Windows.Forms.Label();
59 | this.groupBox1 = new System.Windows.Forms.GroupBox();
60 | this.textBox2 = new System.Windows.Forms.TextBox();
61 | this.textBox1 = new System.Windows.Forms.TextBox();
62 | this.button4 = new System.Windows.Forms.Button();
63 | this.button3 = new System.Windows.Forms.Button();
64 | this.label8 = new System.Windows.Forms.Label();
65 | this.label7 = new System.Windows.Forms.Label();
66 | this.tabPage4 = new System.Windows.Forms.TabPage();
67 | this.groupBox3 = new System.Windows.Forms.GroupBox();
68 | this.radioButton5 = new System.Windows.Forms.RadioButton();
69 | this.radioButton6 = new System.Windows.Forms.RadioButton();
70 | this.groupBox4 = new System.Windows.Forms.GroupBox();
71 | this.radioButton7 = new System.Windows.Forms.RadioButton();
72 | this.radioButton8 = new System.Windows.Forms.RadioButton();
73 | this.groupBox5 = new System.Windows.Forms.GroupBox();
74 | this.radioButton9 = new System.Windows.Forms.RadioButton();
75 | this.radioButton10 = new System.Windows.Forms.RadioButton();
76 | this.groupBox6 = new System.Windows.Forms.GroupBox();
77 | this.radioButton11 = new System.Windows.Forms.RadioButton();
78 | this.radioButton12 = new System.Windows.Forms.RadioButton();
79 | this.button8 = new System.Windows.Forms.Button();
80 | this.tab1.SuspendLayout();
81 | this.tabPage1.SuspendLayout();
82 | this.tabPage2.SuspendLayout();
83 | this.tabPage3.SuspendLayout();
84 | this.groupBox2.SuspendLayout();
85 | this.groupBox1.SuspendLayout();
86 | this.tabPage4.SuspendLayout();
87 | this.groupBox3.SuspendLayout();
88 | this.groupBox4.SuspendLayout();
89 | this.groupBox5.SuspendLayout();
90 | this.groupBox6.SuspendLayout();
91 | this.SuspendLayout();
92 | //
93 | // tab1
94 | //
95 | this.tab1.Controls.Add(this.tabPage1);
96 | this.tab1.Controls.Add(this.tabPage4);
97 | this.tab1.Controls.Add(this.tabPage3);
98 | this.tab1.Controls.Add(this.tabPage2);
99 | resources.ApplyResources(this.tab1, "tab1");
100 | this.tab1.Multiline = true;
101 | this.tab1.Name = "tab1";
102 | this.tab1.SelectedIndex = 0;
103 | //
104 | // tabPage1
105 | //
106 | this.tabPage1.Controls.Add(this.label5);
107 | this.tabPage1.Controls.Add(this.label4);
108 | this.tabPage1.Controls.Add(this.checkBox1);
109 | this.tabPage1.Controls.Add(this.button1);
110 | this.tabPage1.Controls.Add(this.label2);
111 | this.tabPage1.Controls.Add(this.dateTimePicker2);
112 | this.tabPage1.Controls.Add(this.label1);
113 | this.tabPage1.Controls.Add(this.dateTimePicker1);
114 | resources.ApplyResources(this.tabPage1, "tabPage1");
115 | this.tabPage1.Name = "tabPage1";
116 | this.tabPage1.UseVisualStyleBackColor = true;
117 | //
118 | // label5
119 | //
120 | resources.ApplyResources(this.label5, "label5");
121 | this.label5.Name = "label5";
122 | //
123 | // label4
124 | //
125 | resources.ApplyResources(this.label4, "label4");
126 | this.label4.Name = "label4";
127 | //
128 | // checkBox1
129 | //
130 | resources.ApplyResources(this.checkBox1, "checkBox1");
131 | this.checkBox1.Name = "checkBox1";
132 | this.checkBox1.UseVisualStyleBackColor = true;
133 | this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
134 | //
135 | // button1
136 | //
137 | resources.ApplyResources(this.button1, "button1");
138 | this.button1.Name = "button1";
139 | this.button1.UseVisualStyleBackColor = true;
140 | this.button1.Click += new System.EventHandler(this.button1_Click);
141 | //
142 | // label2
143 | //
144 | resources.ApplyResources(this.label2, "label2");
145 | this.label2.Name = "label2";
146 | //
147 | // dateTimePicker2
148 | //
149 | resources.ApplyResources(this.dateTimePicker2, "dateTimePicker2");
150 | this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Time;
151 | this.dateTimePicker2.Name = "dateTimePicker2";
152 | this.dateTimePicker2.ShowUpDown = true;
153 | //
154 | // label1
155 | //
156 | resources.ApplyResources(this.label1, "label1");
157 | this.label1.Name = "label1";
158 | //
159 | // dateTimePicker1
160 | //
161 | resources.ApplyResources(this.dateTimePicker1, "dateTimePicker1");
162 | this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Time;
163 | this.dateTimePicker1.Name = "dateTimePicker1";
164 | this.dateTimePicker1.ShowUpDown = true;
165 | //
166 | // tabPage2
167 | //
168 | this.tabPage2.Controls.Add(this.label3);
169 | this.tabPage2.Controls.Add(this.button2);
170 | this.tabPage2.Controls.Add(this.radioButton4);
171 | this.tabPage2.Controls.Add(this.radioButton3);
172 | this.tabPage2.Controls.Add(this.radioButton2);
173 | this.tabPage2.Controls.Add(this.radioButton1);
174 | resources.ApplyResources(this.tabPage2, "tabPage2");
175 | this.tabPage2.Name = "tabPage2";
176 | this.tabPage2.UseVisualStyleBackColor = true;
177 | //
178 | // label3
179 | //
180 | resources.ApplyResources(this.label3, "label3");
181 | this.label3.ForeColor = System.Drawing.SystemColors.ButtonShadow;
182 | this.label3.Name = "label3";
183 | //
184 | // button2
185 | //
186 | resources.ApplyResources(this.button2, "button2");
187 | this.button2.Name = "button2";
188 | this.button2.UseVisualStyleBackColor = true;
189 | this.button2.Click += new System.EventHandler(this.button2_Click);
190 | //
191 | // radioButton4
192 | //
193 | resources.ApplyResources(this.radioButton4, "radioButton4");
194 | this.radioButton4.Name = "radioButton4";
195 | this.radioButton4.TabStop = true;
196 | this.radioButton4.UseVisualStyleBackColor = true;
197 | //
198 | // radioButton3
199 | //
200 | resources.ApplyResources(this.radioButton3, "radioButton3");
201 | this.radioButton3.Name = "radioButton3";
202 | this.radioButton3.TabStop = true;
203 | this.radioButton3.UseVisualStyleBackColor = true;
204 | //
205 | // radioButton2
206 | //
207 | resources.ApplyResources(this.radioButton2, "radioButton2");
208 | this.radioButton2.Name = "radioButton2";
209 | this.radioButton2.TabStop = true;
210 | this.radioButton2.UseVisualStyleBackColor = true;
211 | //
212 | // radioButton1
213 | //
214 | resources.ApplyResources(this.radioButton1, "radioButton1");
215 | this.radioButton1.Name = "radioButton1";
216 | this.radioButton1.TabStop = true;
217 | this.radioButton1.UseVisualStyleBackColor = true;
218 | //
219 | // tabPage3
220 | //
221 | this.tabPage3.Controls.Add(this.button7);
222 | this.tabPage3.Controls.Add(this.groupBox2);
223 | this.tabPage3.Controls.Add(this.groupBox1);
224 | resources.ApplyResources(this.tabPage3, "tabPage3");
225 | this.tabPage3.Name = "tabPage3";
226 | this.tabPage3.UseVisualStyleBackColor = true;
227 | //
228 | // button7
229 | //
230 | resources.ApplyResources(this.button7, "button7");
231 | this.button7.Name = "button7";
232 | this.button7.UseVisualStyleBackColor = true;
233 | this.button7.Click += new System.EventHandler(this.button7_Click);
234 | //
235 | // groupBox2
236 | //
237 | this.groupBox2.Controls.Add(this.label12);
238 | this.groupBox2.Controls.Add(this.textBox4);
239 | this.groupBox2.Controls.Add(this.textBox3);
240 | this.groupBox2.Controls.Add(this.button5);
241 | this.groupBox2.Controls.Add(this.button6);
242 | this.groupBox2.Controls.Add(this.label9);
243 | this.groupBox2.Controls.Add(this.label10);
244 | resources.ApplyResources(this.groupBox2, "groupBox2");
245 | this.groupBox2.Name = "groupBox2";
246 | this.groupBox2.TabStop = false;
247 | //
248 | // label12
249 | //
250 | resources.ApplyResources(this.label12, "label12");
251 | this.label12.ForeColor = System.Drawing.SystemColors.HotTrack;
252 | this.label12.Name = "label12";
253 | this.label12.Click += new System.EventHandler(this.label12_Click);
254 | //
255 | // textBox4
256 | //
257 | resources.ApplyResources(this.textBox4, "textBox4");
258 | this.textBox4.Name = "textBox4";
259 | this.textBox4.ReadOnly = true;
260 | //
261 | // textBox3
262 | //
263 | resources.ApplyResources(this.textBox3, "textBox3");
264 | this.textBox3.Name = "textBox3";
265 | this.textBox3.ReadOnly = true;
266 | //
267 | // button5
268 | //
269 | resources.ApplyResources(this.button5, "button5");
270 | this.button5.Name = "button5";
271 | this.button5.UseVisualStyleBackColor = true;
272 | this.button5.Click += new System.EventHandler(this.button5_Click);
273 | //
274 | // button6
275 | //
276 | resources.ApplyResources(this.button6, "button6");
277 | this.button6.Name = "button6";
278 | this.button6.UseVisualStyleBackColor = true;
279 | this.button6.Click += new System.EventHandler(this.button6_Click);
280 | //
281 | // label9
282 | //
283 | resources.ApplyResources(this.label9, "label9");
284 | this.label9.Name = "label9";
285 | //
286 | // label10
287 | //
288 | resources.ApplyResources(this.label10, "label10");
289 | this.label10.Name = "label10";
290 | //
291 | // groupBox1
292 | //
293 | this.groupBox1.Controls.Add(this.textBox2);
294 | this.groupBox1.Controls.Add(this.textBox1);
295 | this.groupBox1.Controls.Add(this.button4);
296 | this.groupBox1.Controls.Add(this.button3);
297 | this.groupBox1.Controls.Add(this.label8);
298 | this.groupBox1.Controls.Add(this.label7);
299 | resources.ApplyResources(this.groupBox1, "groupBox1");
300 | this.groupBox1.Name = "groupBox1";
301 | this.groupBox1.TabStop = false;
302 | //
303 | // textBox2
304 | //
305 | resources.ApplyResources(this.textBox2, "textBox2");
306 | this.textBox2.Name = "textBox2";
307 | this.textBox2.ReadOnly = true;
308 | //
309 | // textBox1
310 | //
311 | resources.ApplyResources(this.textBox1, "textBox1");
312 | this.textBox1.Name = "textBox1";
313 | this.textBox1.ReadOnly = true;
314 | //
315 | // button4
316 | //
317 | resources.ApplyResources(this.button4, "button4");
318 | this.button4.Name = "button4";
319 | this.button4.UseVisualStyleBackColor = true;
320 | this.button4.Click += new System.EventHandler(this.button4_Click);
321 | //
322 | // button3
323 | //
324 | resources.ApplyResources(this.button3, "button3");
325 | this.button3.Name = "button3";
326 | this.button3.UseVisualStyleBackColor = true;
327 | this.button3.Click += new System.EventHandler(this.button3_Click);
328 | //
329 | // label8
330 | //
331 | resources.ApplyResources(this.label8, "label8");
332 | this.label8.Name = "label8";
333 | //
334 | // label7
335 | //
336 | resources.ApplyResources(this.label7, "label7");
337 | this.label7.Name = "label7";
338 | //
339 | // tabPage4
340 | //
341 | this.tabPage4.Controls.Add(this.button8);
342 | this.tabPage4.Controls.Add(this.groupBox6);
343 | this.tabPage4.Controls.Add(this.groupBox5);
344 | this.tabPage4.Controls.Add(this.groupBox4);
345 | this.tabPage4.Controls.Add(this.groupBox3);
346 | resources.ApplyResources(this.tabPage4, "tabPage4");
347 | this.tabPage4.Name = "tabPage4";
348 | this.tabPage4.UseVisualStyleBackColor = true;
349 | //
350 | // groupBox3
351 | //
352 | this.groupBox3.Controls.Add(this.radioButton6);
353 | this.groupBox3.Controls.Add(this.radioButton5);
354 | resources.ApplyResources(this.groupBox3, "groupBox3");
355 | this.groupBox3.Name = "groupBox3";
356 | this.groupBox3.TabStop = false;
357 | //
358 | // radioButton5
359 | //
360 | resources.ApplyResources(this.radioButton5, "radioButton5");
361 | this.radioButton5.Name = "radioButton5";
362 | this.radioButton5.TabStop = true;
363 | this.radioButton5.UseVisualStyleBackColor = true;
364 | //
365 | // radioButton6
366 | //
367 | resources.ApplyResources(this.radioButton6, "radioButton6");
368 | this.radioButton6.Name = "radioButton6";
369 | this.radioButton6.TabStop = true;
370 | this.radioButton6.UseVisualStyleBackColor = true;
371 | //
372 | // groupBox4
373 | //
374 | this.groupBox4.Controls.Add(this.radioButton7);
375 | this.groupBox4.Controls.Add(this.radioButton8);
376 | resources.ApplyResources(this.groupBox4, "groupBox4");
377 | this.groupBox4.Name = "groupBox4";
378 | this.groupBox4.TabStop = false;
379 | //
380 | // radioButton7
381 | //
382 | resources.ApplyResources(this.radioButton7, "radioButton7");
383 | this.radioButton7.Name = "radioButton7";
384 | this.radioButton7.TabStop = true;
385 | this.radioButton7.UseVisualStyleBackColor = true;
386 | //
387 | // radioButton8
388 | //
389 | resources.ApplyResources(this.radioButton8, "radioButton8");
390 | this.radioButton8.Name = "radioButton8";
391 | this.radioButton8.TabStop = true;
392 | this.radioButton8.UseVisualStyleBackColor = true;
393 | //
394 | // groupBox5
395 | //
396 | this.groupBox5.Controls.Add(this.radioButton9);
397 | this.groupBox5.Controls.Add(this.radioButton10);
398 | resources.ApplyResources(this.groupBox5, "groupBox5");
399 | this.groupBox5.Name = "groupBox5";
400 | this.groupBox5.TabStop = false;
401 | //
402 | // radioButton9
403 | //
404 | resources.ApplyResources(this.radioButton9, "radioButton9");
405 | this.radioButton9.Name = "radioButton9";
406 | this.radioButton9.TabStop = true;
407 | this.radioButton9.UseVisualStyleBackColor = true;
408 | //
409 | // radioButton10
410 | //
411 | resources.ApplyResources(this.radioButton10, "radioButton10");
412 | this.radioButton10.Name = "radioButton10";
413 | this.radioButton10.TabStop = true;
414 | this.radioButton10.UseVisualStyleBackColor = true;
415 | //
416 | // groupBox6
417 | //
418 | this.groupBox6.Controls.Add(this.radioButton11);
419 | this.groupBox6.Controls.Add(this.radioButton12);
420 | resources.ApplyResources(this.groupBox6, "groupBox6");
421 | this.groupBox6.Name = "groupBox6";
422 | this.groupBox6.TabStop = false;
423 | //
424 | // radioButton11
425 | //
426 | resources.ApplyResources(this.radioButton11, "radioButton11");
427 | this.radioButton11.Name = "radioButton11";
428 | this.radioButton11.TabStop = true;
429 | this.radioButton11.UseVisualStyleBackColor = true;
430 | //
431 | // radioButton12
432 | //
433 | resources.ApplyResources(this.radioButton12, "radioButton12");
434 | this.radioButton12.Name = "radioButton12";
435 | this.radioButton12.TabStop = true;
436 | this.radioButton12.UseVisualStyleBackColor = true;
437 | //
438 | // button8
439 | //
440 | resources.ApplyResources(this.button8, "button8");
441 | this.button8.Name = "button8";
442 | this.button8.UseVisualStyleBackColor = true;
443 | this.button8.Click += new System.EventHandler(this.button8_Click);
444 | //
445 | // Form2
446 | //
447 | resources.ApplyResources(this, "$this");
448 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
449 | this.Controls.Add(this.tab1);
450 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
451 | this.MaximizeBox = false;
452 | this.MinimizeBox = false;
453 | this.Name = "Form2";
454 | this.Load += new System.EventHandler(this.Form2_Load);
455 | this.tab1.ResumeLayout(false);
456 | this.tabPage1.ResumeLayout(false);
457 | this.tabPage1.PerformLayout();
458 | this.tabPage2.ResumeLayout(false);
459 | this.tabPage2.PerformLayout();
460 | this.tabPage3.ResumeLayout(false);
461 | this.groupBox2.ResumeLayout(false);
462 | this.groupBox2.PerformLayout();
463 | this.groupBox1.ResumeLayout(false);
464 | this.groupBox1.PerformLayout();
465 | this.tabPage4.ResumeLayout(false);
466 | this.groupBox3.ResumeLayout(false);
467 | this.groupBox3.PerformLayout();
468 | this.groupBox4.ResumeLayout(false);
469 | this.groupBox4.PerformLayout();
470 | this.groupBox5.ResumeLayout(false);
471 | this.groupBox5.PerformLayout();
472 | this.groupBox6.ResumeLayout(false);
473 | this.groupBox6.PerformLayout();
474 | this.ResumeLayout(false);
475 |
476 | }
477 |
478 | #endregion
479 |
480 | private System.Windows.Forms.TabControl tab1;
481 | private System.Windows.Forms.TabPage tabPage1;
482 | private System.Windows.Forms.TabPage tabPage2;
483 | private System.Windows.Forms.Label label2;
484 | private System.Windows.Forms.DateTimePicker dateTimePicker2;
485 | private System.Windows.Forms.Label label1;
486 | private System.Windows.Forms.DateTimePicker dateTimePicker1;
487 | private System.Windows.Forms.Button button1;
488 | private System.Windows.Forms.Button button2;
489 | private System.Windows.Forms.RadioButton radioButton4;
490 | private System.Windows.Forms.RadioButton radioButton3;
491 | private System.Windows.Forms.RadioButton radioButton2;
492 | private System.Windows.Forms.RadioButton radioButton1;
493 | private System.Windows.Forms.Label label3;
494 | private System.Windows.Forms.Label label4;
495 | private System.Windows.Forms.CheckBox checkBox1;
496 | private System.Windows.Forms.Label label5;
497 | private System.Windows.Forms.TabPage tabPage3;
498 | private System.Windows.Forms.Label label12;
499 | private System.Windows.Forms.Button button7;
500 | private System.Windows.Forms.GroupBox groupBox2;
501 | private System.Windows.Forms.TextBox textBox4;
502 | private System.Windows.Forms.TextBox textBox3;
503 | private System.Windows.Forms.Button button5;
504 | private System.Windows.Forms.Button button6;
505 | private System.Windows.Forms.Label label9;
506 | private System.Windows.Forms.Label label10;
507 | private System.Windows.Forms.GroupBox groupBox1;
508 | private System.Windows.Forms.TextBox textBox2;
509 | private System.Windows.Forms.TextBox textBox1;
510 | private System.Windows.Forms.Button button4;
511 | private System.Windows.Forms.Button button3;
512 | private System.Windows.Forms.Label label8;
513 | private System.Windows.Forms.Label label7;
514 | private System.Windows.Forms.TabPage tabPage4;
515 | private System.Windows.Forms.Button button8;
516 | private System.Windows.Forms.GroupBox groupBox6;
517 | private System.Windows.Forms.RadioButton radioButton11;
518 | private System.Windows.Forms.RadioButton radioButton12;
519 | private System.Windows.Forms.GroupBox groupBox5;
520 | private System.Windows.Forms.RadioButton radioButton9;
521 | private System.Windows.Forms.RadioButton radioButton10;
522 | private System.Windows.Forms.GroupBox groupBox4;
523 | private System.Windows.Forms.RadioButton radioButton7;
524 | private System.Windows.Forms.RadioButton radioButton8;
525 | private System.Windows.Forms.GroupBox groupBox3;
526 | private System.Windows.Forms.RadioButton radioButton6;
527 | private System.Windows.Forms.RadioButton radioButton5;
528 | }
529 | }
--------------------------------------------------------------------------------
/DarkMode/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | 135, 17
125 |
126 |
127 |
128 | 124, 22
129 |
130 |
131 | 设置
132 |
133 |
134 | 180, 22
135 |
136 |
137 | 开机自启
138 |
139 |
140 | 180, 22
141 |
142 |
143 | 关于
144 |
145 |
146 | 180, 22
147 |
148 |
149 | 退出
150 |
151 |
152 | 125, 92
153 |
154 |
155 | contextMenuStrip1
156 |
157 |
158 | System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
159 |
160 |
161 |
162 | AAABAAEAyMgAAAEAIABAJAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAADIAAAAyAgGAAAArViungAAAAlw
163 | SFlzAAALEwAACxMBAJqcGAAAIABJREFUeJztnXuU7EdV7z97V/1+PTPnlZN3IOGdBE0kQl6iwgJ5mBiQ
164 | GAgvQRdorrh4CShXL6J3XRXxAhcu6yIKS5aPq6DXBIWAEVAiuYAIXB7BKI8QRYyIkJNz5tXdv6ra949f
165 | 95yZOWemZ6a7px9Tn7Uqc9LTv+qaX/++VbV37dol9qlrGQomYEZMgdSOWAqkBAKIgIlDVBBVXOFR70AV
166 | knUqUBCrL0AgANr5nTjA6qLUP6OBK+rft1v1z6IB6qF5LywvwaHTwbr1d643EcSfi8WnAL8JpOHckMzk
167 | YfhRN2HEXA5cj4QngLxp1I3JjBGdjnSvCuQ64JkgT0SYxVCO8R7y6JEB2EdnZrKXBGI2A/wn4HqwS4AZ
168 | oAASwkdIHBlp+zKjR4GDBkFWXtoLAjmML36KA4efhqULWNM/AFBh8k4Ojqh1mTEi0TF6V5higch9sHgD
169 | MTwVcQ9AOLDBGx3evW/dfcnsGWpnElU46W+nUSDnIfpCVJ4Mdh5sKAyAgPEhVO/ercZlxgwzCKn2uoqd
170 | 8OspEoiUpHgD2PNxciH1VKoXFcJfUlUn3pnMlGOrfmw8fZgWgVyG2CuBxwKnb+M6w+Itx9deMnsHOb6e
171 | JtMqEOEQZi8GezbIhaw1vnuRgH/A7MtDal1mnBFHPXJs3jlOskAej9mLgMeAHNrB9RVin0I1DrhdmUlh
172 | CxOHCRSInAr2M2DPAC7oo6I2Jp/b3qCTmXikG2K0tbdPmkCuROzlYNewNSN8MyJJ/nYQjcpMEMpmNvkJ
173 | TIZAjBnUnotwA3X81ACQbwN3DKauzNjT29w4KZMgkAvBfhbhWrbnodqMANyB0BpQfZlxZofigPEXyFUY
174 | LwWuGnC9TbBP5tXzvcLOv+hxFcgsYj8BvAQ4fwj1NzE+NoR6M2PF5mscW2EcBXIe8HNgzwfp1xDfiBYm
175 | nxpS3ZlxYQAzhHETyCXAzyPyzKF+itm3gKND/YzM6FADG4z7fpwE8gPALyPy6CF/TgS5c9eXP/oc6jM9
176 | sO7axmDDhsZFIFeB/DbG/Xbhs5qI3LULn7OCxUSs2kgWyVAwM1xZIOrAEoMUyTgI5BpR/WNkaPbGetqQ
177 | dk8gqqR2oHXkKOLyqv0wsJSYOeUgbnZ20APIyAVyrai+W7xflW1k6LTR3RtBLEVSrBDv8ggyTIZ0b0cp
178 | kOvEyY2+Ue6mOADaRN0dgaiQWhXto4uoH3VflNkJo/rWrhPVG32jMQrjtY0PXxv6pwiQhBQionlqNans
179 | tkAEeAqqN7pGiahn4JPGXmha4sDCIjZcYZpBuCfSPhbRIgtkUtlNgTjgh4B3u6LANQpGsJPPgH+m8gxk
180 | FWkjHMQjkfY3I1pmcUwyuyUQR73O8R4tC9zcHKSR5GhrkfRrLAzXYWaANZcRn2MhJ53dEIgCV2D8kQDF
181 | zOyoxAEQgaWTZa8YGCrEhSbVwgLi3PA+J7MrDFsgAlxkMb0xRju93D8HTnfba7WahLEw3E8wbABBcpnx
182 | YJgCEZAHWYi/FqvqSr9vDtdojFIcABGx+aHVrkJYbFLN59FjWhieQIQzUzv+fLXUerI2SvzMyMUBdRzW
183 | EEcQrQ2QPHpMDcMRiCApxKe1m8s/KU7wM416LWAcBCJDmmKpEhaWaC8s5nWPKcJXy8uDq80UMwW1J1gI
184 | b8Yixdwcrtz11fKNiEOzQTrJMjLTxeBHEJHvsxh+O1WVukZjHOyO1UTEBi8QVar5RaqFpTx6TBmDFYjw
185 | UAvhl2PVur96j28U9bFq4yOQQNLBG+miDHtlPjMafN/zglVGqaV4bYrpsSIqrijQmcYoVss3Y/BeLFWq
186 | hQWqpeU8ekwh3jfm+qtBBAuBEOM1ZuFVFoN3hceXZadXHSuBKPWq/uCQzt9oee1jGvF971EQwVQfZu32
187 | K2MV9osoWjSQshinqVUXReizR1hdmxLmFwmLrTx6TCn92yAikNKTUwiPxAzxvg5E7Cdb1/BQzAYXiCVg
188 | ljCzvBlqSvHYDmccIqRQEWPragvVSyymQkTxZYkWu7pDcDs4YP9AalKlOrZIWG4hmsUxrfidh30LhlwQ
189 | q+qlFqozAdQ7XGMsbY8uDhuQQESwmLBkWSBTzM4FIgqWrrEUH4MZooprlOzy/vLtooj2b4OIEBaWiO0q
190 | i2PK8SE2d3ShBB4f2u0XkWLDAOfcOK2Yb4TDrP8RxDlSFbGUsu0x5Xizkx9/uykiZ8Qq3JCq6kGYIEqd
191 | l8i58ReI9HmuiAhhYYFYVVkcewAv251iCaRk11hMP4gZ9ehRoEU5lAYOGIf1KRDnSFXAYk7GsBfYtptX
192 | RB5kVXiWxXiouzDmimKcPVerUWCuPr9zB4gQFhZJIWRx7BG8buNZMQEL6SmW4vevjB7e1+IYW8fVGkpE
193 | TyPtcBBRR2h9AwuxjjHLTD1et/FQR+HiGML1FtNcN8SiHj1GkqFkB5gHPb9eCtnJKFIi+m1MBrhFIDPW
194 | bCNYUSDZc1JMl3VHD/UOLYt6NX38p1cd4lkwPwe2tK3LRAjLR7DQZIeu8ckYYycQSza058+3ZWtmiMMu
195 | jVXrGlIquoJQX9TrHhODAFaiiw8BPr+tS9URm99CUuzsN9/WF6KAE6HKChkcAqSYKPaVSFEM5TN8S3tU
196 | LGAmFKH5UxLjRd2oVRFFvR+XrbTbYQbRi9muQIBi3z5Sc7GTtmhbo4iZYTFYPhZxgCQz/EwDf2g/2HCW
197 | GLy0esw0zHCN4mJi9b2YycroUfhJTcg8C3bRtic7ZujsPsJSk9SK211Bt2SE2GaoCR33FMlIIVIcmgP1
198 | ECIM4VQkz+LmJ5FZMhxzLzPjod1nygDxDp3M8y5mMC7e0a4QSUhjhtiMWCtt62EXQDTbIYPAYsIf8khq
199 | IDLcGYzXsrFxQwCFB6RoV4KsPFIiUo8ekze9gno1/XxK2cGjahRn7Se2WoT55k7WQibuZo0TZrUx7soG
200 | M+c4CPuh6cDi0D7TF7Obx+4ZvCC1Ww+ybrpQM9R73GQnRjtE5DDGkW1f2Yq4siD5gKXtjSKZnWGd8wf9
201 | bAkGM4cPgSxDSAM7rHMj/GZTaVU50G5V329msyuNpXbvTvRCmeGp7BLg1m1fG4zilAOkVqBaaCIuK2RY
202 | rAhjpsQMZk49VKeujcNz665n0y23ZjzFYrhgTWPMEOcnITBxMxrAw7AdCAQgJLTwtTjyXvTB03mu/EwJ
203 | yZg5/VC9vSIliGlXM8h49RuMBKJUzdb1Bmesftn5ifVerWYW44odT49ipDhlPwi0jy1my2JQmAGCNop6
204 | KnXm4frexliLYwT9kLeNQkQknZFCeOjqUcI6e86n4LTWEng4Pik7jVy0iuK0OVIKVPfmqVZfdEZhLQtE
205 | hJmzT4EkndFitE3zIZz8+TD4z2Z27toXOwKZTO/Ves4icR/g6zuuIdY7KesOY+Lvx+6zWhgqzJxxat1d
206 | hVBPo8agz/EqJxsNpIyh/SgzW+PiEnWo1wmLvdoQR9Qr6UcgAcqDByEK7WMLOQR+q3SjMbxDvWPmrNPq
207 | 0SLGWhhjdBsVUdYXER6XYnjACca513phZjpoAFf0VYMAlhAh7y7cKgLi6vwFc/c5vTbAQxjlqWOb4t2B
208 | Q2tfESHM3/N8zE5d/XJ33/kU9ZINkMtxoe/V7eK0WVCjdWQpJ3HYCKn/42dKGqcdhhg64SGMtRfQY+uV
209 | qz6F8DAzW+uq6rp3p8P+gPq0m4cDB4BjfdUUEsXhehNW657FaXBiDBaDYm6G8tRDq6ZSNhY2Ri98Wl77
210 | bIjIM1NVnbH+jaJaLxBOh/3RxWHucuCv+q4p5QzvaxDBUqTcP0d5+GC96h3jxJ3A5VNYl9VE5OoT0nN2
211 | vVcT9IdtEU/iMgYikERxYD+Y0Lp3fs+OIhYTjVP3URzaD+3OqUIbeEonAe8PrNKCCNW9899lZmtSlBjg
212 | u+7d6XJnFiCXDmyoN6sfDBVa9xzbUyKxmGgcPkAxNwcad7JnZixZvyR+qsV4+gnvMkOKrv2xOw3bJTzY
213 | VSDnA18eaM3TdZ9OpDPNtpiYOe0Qbt8sYp1QkCnqF3xorsqsKPKMFOOJmQdFa3FMl/3RpYGlJwFvHEht
214 | MVHsm4GUaB2ZR/xERz2fiBkpJmbPOhXnS7A4TY6bE1CrAislhGsMZk94k8o02h9dPMiPrBzCOYiSjGL/
215 | LI3DB7E4ufPvLpYM6+zgmzntFPbf9yz8TFmv/6hOw0xqQ7yf7QwYIoTF+Yvq1DirMKsjd6dXIApcBnw/
216 | 8FEGNTmSulMxm8x96JYSqGAhse/s0xCvWDLU9XEgwASioo5OOSOFeHD942GAODfNIwhAA5Wn1KkVOnsN
217 | +i0x4eZKGqfsJ4Xh7XgbJPVxDnWZO/NU5mSWfWedjpb19gbtbpKbztnUSfFx5Zx0+ZEU48n334rQSW+y
218 | aw3bZRTjeuA1wL0M6BEQoNg3i4jQOjqesVqWEjiQpMzd98x6rQKr17wQKDx7ShHr8Cm0u/++mjo+6QRE
219 | ddpHEIDzQB4P3AQMpss36vRIzmExjYdArLYnoN4ZOnvaafBvwP3rTDWogtjx2Kjp7RS3hLdU9xiIPvQE
220 | +wPqPejq9sK8U1F9KpE/HWitBlo0aJxyiNbRo6MTidX7eVyjqPd0R0MK0OTqKIBy1fRwD48Y6/F+bh8g
221 | hOXFM056X4w6AG86XbzrsKtBLgC+xACfEhGlnJvF+REZuJ30NKghSJ1L2QPeYDlB9xjrzAl49SWInGHz
222 | x06aYlGcwt6JUD2Is2eQ5FcZaDdqoIKb2zjF0lDpZigX6oQH3VXuLIqeqFVtrGo9Pq2P3gW6Zw9OsYv3
223 | RIQXIDwEoT5baFAFBuMd227pLs6Y1Rn4syi2haZYkUL1eODkI4hs+wyqycY4B7Fnwo5yL44PQm1si2WT
224 | og801b7vS9jogdhLo0cXsRuAhzDpronJbv1YoK5QzOxcbMgp6iYJk3MRezobjKpjTXdalUeOgaDqRZOd
225 | JECxg0jHg7XX7rbYTwDnj7oZ2ye7aQeJ4txpFtLG8+2948Fai8n9ELueDRZPx4/OqJEZKN6iPMJi2lgF
226 | XRtkL957sR/H5E+BL6CM55y+s4yBWL3WsRe/pyHiUys8kg0MdIPa17kXDXUAkwcAT0ftSxyT9oACUAZH
227 | oj6PtEEWxpDwWDqf8ewbxwOx5+LtL7hHPsESaazuVADu39nB04kYygwWNTiPTTZJiu6xdZATeQDGSxAO
228 | DnThcBClE3CbGR7ekDNH3YixJ3Edc/wxJTcjEnpfsBsYzJNHjSHjjbShixc6EQvs8Y4qScmZ9iq8fgmR
229 | O0Z6M7qCEIOvsNPc9Jkt4sUo2ez5z7E7NYnLCPYM4LUYyyPpuVemV53M5/mrGTqelMrN3tA9OHHPerJW
230 | Y/Z8LN1KS/6GJLvbdxtQpnptXyb+AKOJQc1sw3AKgeMjSNYHGOcCL0Q4e2SGeWZX0ROSVK/HEt2jsTIA
231 | XIvwGBS3JmJ2WEWZqkRsk4anh0A2PKJtzyKOkpci9iXMPj10I006eaeWcgc1CtRskzAT6rxOWSLrMK7A
232 | eAXGOQNNOLdZyYwEZbO8ZsKqnWmZtcgzgWexOr9xtjGmDm89Hv5ev9+z1J69nwG5A+Mv8ZYoBrAHo7kq
233 | lecJhxtldhsV2TxG2lLeeLMhtVfrF4CHkfv/qUQR6RGjanX2vTySnBzjURgvB07t+d7MxKGiPWKLRDoC
234 | 2aUWTSIiT0fkR0fdjMzg8Zj1DL6zFDHqpGOZk2ENKl5E1L8H/mrF86QCft2hQ8mgWYH34Kxz4ExnoaOR
235 | bY5xQw2pNnuDACml2mDM4Sab8WCMVwPf2fOdeTSeGFScNOn1lcWUTZDeKMb3kXgDdcqgzBSgQGvTd4iQ
236 | YqqnBpleeOBxwOuBc0fclswAUDFZ6vUmSzGvh2ydAuNq4NeBfb3enBlvFGGJrcyKLbt6t0EJPA34lVE3
237 | JNMfCnKs99ukzgieBbIdZkh2A8F+lpAgxLrElJcUJwgF6XkWhgjE2JlmZU/WdthPSv8F4yVrM65nJgVV
238 | cZ9gCzubU0zZDtkZh8F+HsgLiROIukONW+h1Jp8IFiOWg+d2yjkgvw48f9QNyWwPlYb/hqj2zBloMWIx
239 | TxH64DyQXwNeMeqGZLaOVkcWQLWnq7djiORF4P44G5FfQjV7tyYETcsVIvLv9DLUgRQDlmI21PvjIE5e
240 | hdibqZOGZsYYFe8Q1bvYgh2SQjh+fnamHwR4McZbgPuOujGZjVFREOV2pLcny3LIyWAxnofIm4GLRt2U
241 | zMlRiQmJ6eMYvcPezUghLxgOFrkO483AE/IC4vihFgwL9nG2lOVVahskT7MGzQ8A/4ugLwZOG3VjMsdR
242 | UzDl2+LcfM93C6QY6x2G2VAfLMYFVPI64I3Ad4+6OZkaNVFMFHXuDnoY6gKkEOrw98wQsAbwXODNwFWs
243 | TimUGQkqThAnoPIeRHruDbGUSFWVp1nDxHgU8HaQl5L3lYwUNQedciNIs+cVIqRQkWLI06xhYpyL6Oup
244 | 95VcPurm7FWUBJ3yr+rct+kZ2SvEGEkhZm/WsKlPL3oOxltQezbCeaNu0l5DJRorxcntWzpizCC226SY
245 | V9V3BeNyCvtDhNdhPBY4MOom7RW6C4V1ET4A9JxmCZCqziiS2SUERJ6ByB9h9grgYgzJwXHDRdflTn6P
246 | iCz0vErq9ZBUVfUOuczuYZxNSr9Mst+lwQ/jOSuLZHisP5rl38S5/9jKhdKJzYrZWB8NiUs5J93EAXs9
247 | iUeSp11DQVOqPbbdIiq3I9LueaUIFgIWYt5jPSqSKCbPAW5EeDl1Eu0slAGi5oS1Rf8IuHcrFxuQQtUR
248 | SVbJCDkHk/8K8iHglcAl1ELJX0qfnHj6ndn71ft/2or5VxvrobZFMqPHOAORX0Tkw8AvUoes7COfcrhj
249 | VCKcUNTdJshyz6tFSCkRW+3O/Cx3WGPCYYxXArcCrwEeTr05Kwtlm6h5OEl5mwnf3EoF9U7DSMyjyDhy
250 | sE45xK3AG4DLgBnqGK/cm22BDXoU+5I6/49bGhFEaoGsjCKDbWBmIOzH+GmM24D3As+j3snoyN/YRiig
251 | XjfaIej1Axa50ozDvWrqRvnGqo1rzJDz+48tJSKPR3gc2L0Y7wJuAj406oaNGecB1wAtv7x48ofZzN5c
252 | lvpcJB7u+bx3R5FmG+dLcJI1Mt4ItZ3yU5TyPB5snyNxI8p7gC+OunEj4sHADwFPwdujgQrjwMb7DYyo
253 | zt1hMT3MzFyv2ldskRBwriQrZCJQapvkcoyHE+OrQW4B/g74JMbfjLZ5Q+ci4AeBq1D7XhBPbZ8l4B0I
254 | yc/Mbfzsi8qNMYbHgt2n50d1RpHQaqFFkR1ak4VSZ6Qvwa7FeBJI4Ky5e1H5FNjfAX8DfHy0zeybS4Er
255 | qN3flyH2YJASrKS2x7pURPnfAH7TB9nsfaLuhWZ2n62EtgtgIZCqNq7RyOHwk0nRKaByAOxsjCdi9nPA
256 | MeAz1O7j/wt8AegddTEaGsCjge8BrkD4DsROAUpMOp3BSR0UEfgE8GmoD/Hc7EPa6t0HLcXLzOxQzyZ1
257 | cvjGZgv1BeI0i2Ty6QpmH3Aq2LnA40gsI7Sooy6+CnwZ+EqnfBn4l6G2SgxqETwIeOCaYpyP2CHqtZ9Z
258 | sK5reyu0EbsJVx9uK+2PXN3rgkMphPemlB615YddhGJuFr9vH8QcEr8HiNTbJFpri30T406QI8ASwgLG
259 | EiILWFpEWAQW6/9nEUiYHEDTAUz2I+zH2A+2H5MDCPuohXo/NN0P0zmMklooq3/2s5f/W6h8N/CvAJ7Y
260 | 86E/Kuo+Ickut1qJvUmpM4p4tCjyKDL9OFh5eFchFyJcCQRqwzciRLCESKQWVsLo/tsQ85g4wGE46jNs
261 | HILrfI4DGiQdhpXbBt4H3N19wVenFL0vU3m9Hk2Plla6YkuPuggpxBWRZPY03fn+JNCC9BbScResT+UW
262 | hOjk39W7T9OKl9YpHraAQKwqtGrjymywZ8aeFiL/B0ufWf2iL+a38OAKiPm3JR8eQ4jfsdVPtBgJy/Uo
263 | IuqySDLji3EvypsQvyYng2oFPUvbENPPqvN/J9tZ4OjsOgzLrRzpmxlnWgjvRuR21iRpUFTU2FKRiPPu
264 | Xah8bVsjgRmp3caqKoskM6bY3Uh8ExZYX1Q1sdUiarc6726VbToQUoxUS0v56ITMONIG/gzSF7HI+uJj
265 | e1tepqaZex0qlxDbl2znwtiuCMvL+Ll8qFJmrPgCWvxP5OS+J5+q7W4y0y+oT39iVj00xdTYzrQptDpr
266 | I40yG+yZcWAJ5O2o++e1oVjH2f4WTAOBd4rqh7ZrU1hKVMvLWOydvDGTGTIB7GaQd9aR5ycvXvx2E78l
267 | TO0ukeJtYlxqMZy9nU1pKQSqxSXK/fuz0Z4ZIfYVRF4LHN3s7Civbpu9uQAmIPrXTt27Y4w/bWbbethj
268 | qyIWTdzsXJ5qZUbBMiq/j8hnwGqP1Qb42NhxoosFGsXbaNoVLFeXbutKgWq5ifgix2pldpsEfBDkHcdf
269 | 2rhz99W+PjLBqHzW4d+urXhRSnFmO6OIRaNaXKTcvx/xPosks0vIXSBvxPj3rbxbxYSdFgxU9IOq7v0i
270 | sr2HXOqkc9XiEpZD4jO7wzLIH4Dcigmk3sWnVh/5rARClb6qml4r4h4qIX7ntsYBEUK7jSwJfm4O0ZzX
271 | LDM0InAzxlu3k+jIh3t7n3awEQIEEUzsk6UUryyc/12L4fRt1SFC1Wx1NlnNZc9WZjgYnwX+O8Y3t5NQ
272 | REWVnRZUEREEQURvFed/a0uZ4dchIlTLTcJy72ynmcwOOIrxVqJ8imQQt14GNqcxY1FU3y6Ff99OrhcR
273 | qqVlQmvzg3YzmW3SBv4Y5F07uXjQk/6vicqrtfCf39HVIrTnF3Oe38ygMIRbEf4HsLiTClTrmPe+y8o+
274 | EZO/F9WfEO/v2UnuOBFoHZ0nhRyOkumbrwKvpY9skX5fuX8wTTEwDFcnDv+8aPxvMcXfsGSN7VYlAq1j
275 | 8zQOHsh72jM7xJZA3kiSDwO1R2lrm8XXoGbGQMqa4cLaovInrixuNGxnixxmNI8eq6db2bGV2R5tjN/B
276 | eEfvt27O8BYejH8TkVe5ovgYtrNlcgHaR48RmtkmyWyZiNmfAb8B9O0WHerKnGH/JKrPl0Z5545DSURo
277 | Hz1KaPY8vj2TMYSPIfwqncRv/bIbS9dfEZEnaVke3alIxCnthUXC0nKO2cpsjNnXMfslkNsHVeVuxXZ8
278 | EZHvUe93/HSLCO2lJdqLS1g+DzGzmjp7TttSfAEitw6y6t0MfvoiIhep2/lHigih2aRaWMRCyCLJgBmx
279 | 2cRieDoifzHo6ndTIAb8I3CxSH8iie027YWFfPz0XqZzkkBYXibF+HREbmYIpzbtdvisAXdQn+yzczq5
280 | f9vzC8Tl5Z06yTKTigixXVE1W1hKTxfh3dTRugNnFPHlXZF8p+oOVm5WV5QSraVlqoWFek/JUBJ+Z8YK
281 | VeLyMrHZhJiuB/kz6uzxw/m4YVW8Bf4BuEh9fyIRILbatBcWic12tkumFRFIRjU/T2i3wexpCH8ODHWe
282 | PeodSncgcqErirv7ct92cgBXi4uExaXaFZyFMj2IEFstWvPHSFUA44dh+OKA0QsE4EuIPFrL8vP9rnFY
283 | SoTlZdrZyzUdiGBmVEv1dypCG5WrqQ+52ZVo1nEQCMCdInKdNhq39VuRAbHdpjW/QFhcqg34vJV38uh6
284 | K+cXCEtLuKK4XZx7AsYtbJbIasCM05Nzp4g+z5Xl+wbhk7IQqJpN2vPzpFazHk3yiDL+dJJ/xOXa+ZLa
285 | FcVs4y/F+x/H+MhuN2fcYsnvFNUXFzPFkdgKz+lrxbxzo1MVaMclXFHhZmbQsoC0ax1QZquIAEZqtQit
286 | Nqlqgzga+2fejvKGGNOO93T0w7gJBOAuUf0F15j5ZAzVayyEfb0v2RyLiZBaxBjwoYFrNOo99Xn9ZPR0
287 | OsBUVcRWk9gOWIxoUaZirvESVX9jitU3RtW8cZpirebrovqbqP6wev+ZvidG3c2OIRA6Bl9qteplV5G8
288 | 32QUdKa8qaqoFpbqYNRmixQjWpZ3idOr1etvYjYyccD4CgTq7Nt/LSo3SFHchAyix6+9IqnVolpcqlfi
289 | W+06g0UWyu7QEYbFQFhaolpYIDSXa/etOFzR+ICo/zHgA+t24Y2EcZxircXs03j3syr69xL15SmGfX3f
290 | NRFSjFiMWAhE53AzJa4oj3u88vRrsHSmUhYjsdUmtlukmFYiIFyjmBeR14D/c0j/MOLWrjD+AgEwu0vV
291 | v6ay8DlFXy3JLuk75F2kTlQfIyFGUoxEX+HKAlcU4Fz3swfyJ+xZpE5Rm6pAqtrEqiKFunNCBHUeKfxt
292 | ovomId5kY3ZM32QIpKZZEW4s1H+jUPeyFONTLSas32nReqGEiug9rmwghUezUHZG14vYrmpRVBUpBCyl
293 | OtmgKq4sjrjS/1aK8ieW4mfHcYo7SQJBEDD7qKj+E/vch6nic6RVfY+lAYSWrAjFCLFNqgJSFDjvEe86
294 | Z73n6demdL+DlIhVhXXFEWPnnslKVk51/jZXure6Gf/OuDC+KZ4mSiArJPvXNFO8RZx+3EV+MqZ0raV0
295 | Dsn6N7SlFqKZYa0WqdWuBeI8rixQ7xDv6jcaDGELwuSwulNKiRTqqapVFTFUWIhr36egRfkf3pd/kFL6
296 | fUvpc+Pe2UymQKDukZL9P3H+harpIxbis03TNRbT4DxzXcMyBEJVEas26o8LRZ2D1SH7Y/5lD4SVBIFW
297 | OzlSbWinKpBirO0LS3U/JbLSf4j3Jt79tS/L33Pa+IPYXBzHGdUJTK5AutSJud4lKh8SKX/aLD3ZrLp8
298 | oPvWReiefxLbbVK7QgtFnUeLEnGrEnqv/sxpEMy6v8c63r8VMcRQ/0xWv7V7r7qXq6Jl8QnXaNycYvhD
299 | S+kuk8m5L5MvkBXsW5j7FdHivSrpZTHIo8EeYJYY5AKHrKz8RmI7oK024hzqHbjaqBeVEwUzKWKLo5ir
300 | AAAD5klEQVSRlf8cF4QlLBoWAxYiMdSjxfG3C7Jms5qBKK4sblfvPqha/q44f3sKbehju/UomCKBQJ3/
301 | NH0W1R/X0l9HCk9NUa7A7CEDz4TS6SmNegoWQwBrdgzQjlHvPeIU7QjlhBEGRiuck7TFYqqnTWYr7tjU
302 | EUb3HtYDxcnupSGiiPN3qvMf1ZnybSJ81KqETEoHsY4pE8gqzG5C5CYtyqskhh9Lqo+wlC4c9IgCrDw0
303 | K3FFK4KxWjDe18a9c4i6tVORTln598n/mK37AlaPACetqk4VWwvTsFTXb2a1MKq67V37YvXftuEJYAao
304 | IOq+quo+U5SNdyTs/ZbSupFl8phegXSxdAuit7hG+ahYtV8gKT4ipXQhqe8VlI1ZL5iqdnd2R4uVQ4ic
305 | W+X2dJ0R5vh1sqo+uq+sanX3nyva6fbS67xrtRa6gkj1CnZKYAkLCbNESga2RUGsboBIJcnuxMsdzjXe
306 | jsktdSe05i+YWKZfIF3MbhPhNp2bebi1qpcR7FIsPNCM2aFPc9YJBlgxdtc+3NIx+KX+d2c0OC4c7VQn
307 | x7XSHQzoJBBPdnyU6NRrqTM6pLRGgHXtnfatqn9rf498SxxfMXWfFarfwtLnjgtz8oXRZe8IpIvZZwT5
308 | MZ1tPNBi+0UphkcQ0gMxzjKY2TWbYKNRwgwLdQ+8viVbadlJH82uoPpI2tcR+bKK/os5d6eqe6/F9lun
309 | PeXS3hNIF7O7MHsFBtoov1cCP5pSeISldH/gVIPGyAzoDWyRkfTLIkFEvi1e/1lE/7b07nXtKn592oXR
310 | Ze8KZDVmHwM+BuAaM0+wmJ5ltVjua3AQKCfGTdsvdSRBBbKgRfktU/t8Ubrfq1rVe1kx7vcOWSDrMfsg
311 | 2AcB/EzjScl4toV4cUrxDDHbbzCLWX/JvMYNkQQ0EeZV9R715R3i/Pv9/lPe0Tr2H3s6c2UWyGaY3Yxx
312 | M2Z47+4jos9KxhNTCBeYpYPALFiDAZ4WvEsYSAUso7Kozn9NnH5ADvjfSUeWv7YyUljeu58FsnXuBt4A
313 | vAFLFEV5LirPiSleYzGebzHNAAWCw/DUuzXHwZ0TESJGBQQRaZvTu1Xcx8zknRbbx1Mt7eGRYiOyQHbO
314 | 16lPUH2tGajoIVf4R5mTR1riuyylB1pKZ5HSnIHDTKlF0x1tVotnp0KyVT+NOl9UApKoVqruCCp3ifJp
315 | i+kDqR0/jAw/G+E0kQUyOI4CN3cKAJYMP9egOLDv7HBk+apk8UqwC8AOYsyZ2BzQsGgzghWIeEvmMXNm
316 | 1lk8wUTUREggCZEABJAgTpoYRyHdY0nvFsftBPtIquKn0J2dC55Zy/8HcSLdLBoLz6QAAAAASUVORK5C
317 | YII=
318 |
319 |
320 |
321 | DarkMode
322 |
323 |
324 |
325 | True
326 |
327 |
328 | 300, 17
329 |
330 |
331 | True
332 |
333 |
334 | 6, 12
335 |
336 |
337 | 156, 127
338 |
339 |
340 |
341 | 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
496 | YII=
497 |
498 |
499 |
500 | DarkMode
501 |
502 |
503 | notifyIcon1
504 |
505 |
506 | System.Windows.Forms.NotifyIcon, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
507 |
508 |
509 | SettingsToolStripMenuItem
510 |
511 |
512 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
513 |
514 |
515 | SelfOnToolStripMenuItem
516 |
517 |
518 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
519 |
520 |
521 | AboutToolStripMenuItem
522 |
523 |
524 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
525 |
526 |
527 | ExitToolStripMenuItem
528 |
529 |
530 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
531 |
532 |
533 | timer1
534 |
535 |
536 | System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
537 |
538 |
539 | Form1
540 |
541 |
542 | System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
543 |
544 |
--------------------------------------------------------------------------------