diff --git a/Makefile.win b/Makefile.win index 99395a3..2800ac2 100644 --- a/Makefile.win +++ b/Makefile.win @@ -1,34 +1,37 @@ # Project: VoiletWindowsActionTool -# Makefile created by Dev-C++ 6.7.5 +# Makefile created by Red Panda C++ 3.2.2958 -CPP = g++.exe -D__DEBUG__ -CC = gcc.exe -D__DEBUG__ -WINDRES = windres.exe +CXX = "g++.exe" +CC = "gcc.exe" +WINDRES = "windres.exe" +RM = del /q /f +CD = cd /d +LIBS = "-Wl,--stack,12582912" "-mwindows" "-static" +INCS = +CXXINCS = +CXXFLAGS = $(CXXINCS) "-g3" "-Wall" "-D_DEBUG" +CFLAGS = $(INCS) "-std=c99" "-g3" "-Wall" "-D_DEBUG" +WINDRESFLAGS = RES = VoiletWindowsActionTool_private.res OBJ = main.o $(RES) -LINKOBJ = main.o $(RES) -LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -g3 -mwindows -static -INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/10.3.0/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/10.3.0/include-fixed" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include/c++/10.3.0" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include/c++/10.3.0/x86_64-w64-mingw32" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include/c++/10.3.0/backward" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/10.3.0/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/10.3.0/include-fixed" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" BIN = VoiletWindowsActionTool.exe -CXXFLAGS = $(CXXINCS) -Wall -Wextra -g3 -ENCODINGS = -finput-charset=utf-8 -fexec-charset=gbk -CFLAGS = $(INCS) -Wall -Wextra -g3 -RM = del /q /f +LINKOBJ = "main.o" "VoiletWindowsActionTool_private.res" +CLEANOBJ = "main.o" "VoiletWindowsActionTool_private.res" "VoiletWindowsActionTool.exe" .PHONY: all all-before all-after clean clean-custom all: all-before $(BIN) all-after clean: clean-custom - ${RM} $(OBJ) $(BIN) + -$(RM) $(CLEANOBJ) >NUL 2>&1 -$(BIN): $(OBJ) - $(CC) $(LINKOBJ) -o "$(BIN)" $(LIBS) +VoiletWindowsActionTool.exe: $(OBJ) + + $(CC) $(LINKOBJ) -o "VoiletWindowsActionTool.exe" $(LIBS) main.o: main.c - $(CC) -c main.c -o main.o $(CFLAGS) + $(CC) -c "main.c" -o "main.o" $(CFLAGS) -finput-charset=UTF-8 -fexec-charset=gbk -VoiletWindowsActionTool_private.res: VoiletWindowsActionTool_private.rc resource.rc - $(WINDRES) -i VoiletWindowsActionTool_private.rc --input-format=rc -o VoiletWindowsActionTool_private.res -O coff +VoiletWindowsActionTool_private.res: VoiletWindowsActionTool_private.rc resource.rc + $(WINDRES) -i "VoiletWindowsActionTool_private.rc" --input-format=rc -o "VoiletWindowsActionTool_private.res" -O coff $(WINDRESFLAGS) diff --git a/VoiletWindowsActionTool.bookmarks b/VoiletWindowsActionTool.bookmarks new file mode 100644 index 0000000..c8ded7d --- /dev/null +++ b/VoiletWindowsActionTool.bookmarks @@ -0,0 +1,5 @@ +{ + "bookmarks": [ + ], + "timestamp": "1735569601958" +} diff --git a/VoiletWindowsActionTool.debug b/VoiletWindowsActionTool.debug new file mode 100644 index 0000000..adca9e5 --- /dev/null +++ b/VoiletWindowsActionTool.debug @@ -0,0 +1,7 @@ +{ + "breakpoints": [ + ], + "timestamp": "1735569601958", + "watchvars": [ + ] +} diff --git a/VoiletWindowsActionTool.dev b/VoiletWindowsActionTool.dev index 3865629..0c33827 100644 --- a/VoiletWindowsActionTool.dev +++ b/VoiletWindowsActionTool.dev @@ -1,80 +1,116 @@ [Project] -FileName=VoiletWindowsActionTool.dev -Name=VoiletWindowsActionTool -UnitCount=2 -Type=0 -Ver=2 -ObjFiles= -Includes= -Libs= -PrivateResource=VoiletWindowsActionTool_private.rc -ResourceIncludes= -MakeIncludes= -Compiler= -CppCompiler= -Linker= -IsCpp=0 -Icon=VoiletWindowsActionTool.ico -ExeOutput= -ObjectOutput= -LogOutput= -LogOutputEnabled=0 -OverrideOutput=0 -OverrideOutputName=VoiletWindowsActionTool.exe -HostApplication= -UseCustomMakefile=0 -CustomMakefile= -UsePrecompiledHeader=0 -PrecompiledHeader= -CommandLine= -Folders= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=1 -CompilerSettings=0000000000110000000001000 -StaticLink=1 -AddCharset=1 -UseUTF8=0 +FileName = VoiletWindowsActionTool.dev +Name = VoiletWindowsActionTool +UnitCount = 2 +Type = 0 +Ver = 3 +ObjFiles = +Includes = +Libs = +PrivateResource = VoiletWindowsActionTool_private.rc +ResourceIncludes = +MakeIncludes = +Compiler = +CppCompiler = +Linker = +IsCpp = 0 +Icon = app.ico +ExeOutput = +ObjectOutput = +LogOutput = +LogOutputEnabled = 0 +OverrideOutput = 0 +OverrideOutputName = VoiletWindowsActionTool.exe +HostApplication = +UseCustomMakefile = 0 +CustomMakefile = +UsePrecompiledHeader = 0 +PrecompiledHeader = +CommandLine = +Folders = +IncludeVersionInfo = 0 +SupportXPThemes = 0 +CompilerSet = 1 +StaticLink = 1 +AddCharset = 1 +UseUTF8 = 1 +Bins = +ResourceCommand = +ExecEncoding = SYSTEM +Encoding = UTF-8 +ModelType = 1 +ClassBrowserType = 0 +AllowParallelBuilding = false +ParellelBuildingJobs = 0 + [Unit1] -FileName=main.c -CompileCpp=0 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= -DetectEncoding=0 -Encoding=0 +FileName = resource.rc +CompileCpp = 0 +Folder = Resources +Compile = 1 +Link = 0 +Priority = 1000 +OverrideBuildCmd = 0 +BuildCmd = +Encoding = 0 +FileEncoding = PROJECT +RealEncoding = ASCII + [VersionInfo] -Major=1 -Minor=0 -Release=0 -Build=0 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion=1.0.0.0 -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -AutoIncBuildNr=0 -SyncProduct=1 +Major = 1 +Minor = 0 +Release = 0 +Build = 0 +LanguageID = 1033 +CharsetID = 1252 +CompanyName = +FileVersion = 1.0.0.0 +FileDescription = Developed using the Dev-C++ IDE +InternalName = +LegalCopyright = +LegalTrademarks = +OriginalFilename = VoiletWindowsActionTool.exe +ProductName = VoiletWindowsActionTool +ProductVersion = 1.0.0.0 +AutoIncBuildNr = 0 +SyncProduct = 1 + [Unit2] -FileName=resource.rc -Folder=Resources -Compile=1 -Link=0 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= -DetectEncoding=0 -Encoding=0 +FileName = main.c +Folder = +Compile = 1 +Link = 1 +Priority = 1000 +OverrideBuildCmd = 0 +BuildCmd = +Encoding = 0 +CompileCpp = 0 +FileEncoding = PROJECT +RealEncoding = UTF-8 + +[CompilerSettings] +c_cmd_opt_std = c99 +cc_cmd_opt_abort_on_error = +cc_cmd_opt_address_sanitizer = +cc_cmd_opt_check_iso_conformance = +cc_cmd_opt_debug_info = on +cc_cmd_opt_inhibit_all_warning = +cc_cmd_opt_instruction = +cc_cmd_opt_optimize = +cc_cmd_opt_pointer_size = +cc_cmd_opt_profile_info = +cc_cmd_opt_stack_protector = +cc_cmd_opt_std = +cc_cmd_opt_syntax_only = +cc_cmd_opt_use_pipe = +cc_cmd_opt_warning_all = on +cc_cmd_opt_warning_as_error = +cc_cmd_opt_warning_extra = +link_cmd_opt_no_console = +link_cmd_opt_no_link_stdlib = +link_cmd_opt_stack_size = 12 +link_cmd_opt_strip_exe = diff --git a/VoiletWindowsActionTool.exe b/VoiletWindowsActionTool.exe index 5af633e..55e3da9 100644 Binary files a/VoiletWindowsActionTool.exe and b/VoiletWindowsActionTool.exe differ diff --git a/VoiletWindowsActionTool.layout b/VoiletWindowsActionTool.layout index 6575af6..7f4ad52 100644 --- a/VoiletWindowsActionTool.layout +++ b/VoiletWindowsActionTool.layout @@ -1,13 +1,12 @@ -[Editors] -Order=0 -Focused=0 -[Editor_0] -CursorCol=6 -CursorRow=249 -TopLine=232 -LeftChar=1 -[Editor_1] -CursorCol=12 -CursorRow=1 -TopLine=1 -LeftChar=1 +[ + { + "caretX": 24, + "caretY": 220, + "filename": "C:/Users/anonymous/Desktop/CApp/PandaCpp/VoiletWindowsActionTool/main.c", + "focused": true, + "isOpen": true, + "left": 0, + "order": 0, + "top": 5100 + } +] diff --git a/VoiletWindowsActionTool_private.h b/VoiletWindowsActionTool_private.h index e7fa726..4dfa4bd 100644 --- a/VoiletWindowsActionTool_private.h +++ b/VoiletWindowsActionTool_private.h @@ -1,4 +1,4 @@ -/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ +/* THIS FILE WILL BE OVERWRITTEN BY Red Panda C++ */ /* DO NOT EDIT ! */ #ifndef VOILETWINDOWSACTIONTOOL_PRIVATE_H @@ -16,8 +16,8 @@ #define INTERNAL_NAME "" #define LEGAL_COPYRIGHT "" #define LEGAL_TRADEMARKS "" -#define ORIGINAL_FILENAME "" -#define PRODUCT_NAME "" +#define ORIGINAL_FILENAME "VoiletWindowsActionTool.exe" +#define PRODUCT_NAME "VoiletWindowsActionTool" #define PRODUCT_VERSION "1.0.0.0" #endif /*VOILETWINDOWSACTIONTOOL_PRIVATE_H*/ diff --git a/VoiletWindowsActionTool_private.rc b/VoiletWindowsActionTool_private.rc index a9553b4..255f81a 100644 --- a/VoiletWindowsActionTool_private.rc +++ b/VoiletWindowsActionTool_private.rc @@ -1,6 +1,6 @@ -/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ +/* THIS FILE WILL BE OVERWRITTEN BY Red Panda C++ */ /* DO NOT EDIT! */ #include "resource.rc" -A ICON "VoiletWindowsActionTool.ico" +A ICON "app.ico" diff --git a/app.ico b/app.ico new file mode 100644 index 0000000..05472a9 Binary files /dev/null and b/app.ico differ diff --git a/main.c b/main.c index 4a68964..473deb5 100644 --- a/main.c +++ b/main.c @@ -1,14 +1,14 @@ #include #include -#define START_ACTION_BTN_ID 1001 // 弤ť ID +#define START_ACTION_BTN_ID 1001 // 定义激活按钮 ID -#define ENGLISH 0 // Ӣ -#define CHINESE 1 // - -#define INFO_LEFT_MARGIN 40 // ߾ +#define ENGLISH 0 // 英文 +#define CHINESE 1 // 中文 -// +#define INFO_LEFT_MARGIN 20 // 组件左侧边距 + +// 组件 WNDCLASSEX wc; HWND hwnd; MSG msg; @@ -18,14 +18,15 @@ HWND ActionServerText; HWND ActionServerAddr; HWND ActionBtn; +static HFONT hFont; // 用于存储字体对象的句柄 -// ǰѡ -int CurSystemLang = 0; +// 当前语言选项 +int CurSystemLang = CHINESE; -// ǰϵͳ汾ѡ +// 当前系统版本选项 int CurSystemVersion = 0; -// żϢͶӦʾϢĽṹ +// 存放激活信息和对应显示语言信息的结构体 typedef struct { char *Key; @@ -33,7 +34,7 @@ typedef struct char *Chinese; }SYSTEM_VERSION,*SYSTEM_VERSION_PTR; -//żϢĽṹ +//存放激活信息的结构体 typedef struct { char *Key; @@ -41,73 +42,73 @@ typedef struct }ACTION_INFO,*ACTION_INFO_PTR; -// б +// 多语言列表 const char *SystemLangList[] = { "English", - "", + "简体中文", NULL, }; -// ı +// 激活服务器文本 const char *ActionServerStr[] = { "Action Server : ", - " : ", + "激活服务器 : ", }; -// ťı +// 激活按钮文本 const char *ActionBtnStr[] = { "Start Action", - "ʼ", + "开始激活", }; ACTION_INFO ActionInfo; -//ʼ汾Ϣ +//初始化版本信息 const SYSTEM_VERSION SystemVersionList[] = { - {.Key = "FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4", .English = "Windows 7 Pro", .Chinese = "Windows 7 רҵ"}, - {.Key = "MRPKT-YTG23-K7D7T-X2JMM-QY7MG", .English = "Windows 7 Pro N", .Chinese = "Windows 7 רҵ N"}, - {.Key = "W82YF-2Q76Y-63HXB-FGJG9-GF7QX", .English = "Windows 7 Pro E", .Chinese = "Windows 7 רҵ E"}, - {.Key = "33PXH-7Y6KF-2VJC9-XBBR8-HVTHH", .English = "Windows 7 Enterprise", .Chinese = "Windows 7 ҵ"}, - {.Key = "YDRBP-3D83W-TY26F-D46B2-XCKRJ", .English = "Windows 7 Enterprise N", .Chinese = "Windows 7 ҵ N"}, - {.Key = "C29WB-22CC8-VJ326-GHFJW-H9DH4", .English = "Windows 7 Enterprise E", .Chinese = "Windows 7 ҵ E"}, - {.Key = "NG4HW-VH26C-733KW-K6F98-J8CK4", .English = "Windows 8 Pro", .Chinese = "Windows 8 רҵ"}, - {.Key = "XCVCF-2NXM9-723PB-MHCB7-2RYQQ", .English = "Windows 8 Pro N", .Chinese = "Windows 8 רҵ N"}, - {.Key = "32JNW-9KQ84-P47T8-D8GGY-CWCK7", .English = "Windows 8 Enterprise", .Chinese = "Windows 8 ҵ"}, - {.Key = "JMNMF-RHW7P-DMY6X-RF3DR-X2BQT", .English = "Windows 8 Enterprise N", .Chinese = "Windows 8 ҵ N"}, - {.Key = "GCRJD-8NW9H-F2CDX-CCM8D-9D6T9", .English = "Windows 8.1 Pro", .Chinese = "Windows 8.1 רҵ"}, - {.Key = "HMCNV-VVBFX-7HMBH-CTY9B-B4FXY", .English = "Windows 8.1 Pro N", .Chinese = "Windows 8.1 רҵ N"}, - {.Key = "MHF9N-XY6XB-WVXMC-BTDCT-MKKG7", .English = "Windows 8.1 Enterprise", .Chinese = "Windows 8.1 ҵ"}, - {.Key = "TT4HM-HN7YT-62K67-RGRQJ-JFFXW", .English = "Windows 8.1 Enterprise N", .Chinese = "Windows 8.1 ҵ N"}, - {.Key = "TX9XD-98N7V-6WMQ6-BX7FG-H8Q99", .English = "Windows 10/11 Home", .Chinese = "Windows 10/11 ͥ"}, - {.Key = "PVMJN-6DFY6-9CCP6-7BKTT-D3WVR", .English = "Windows 10/11 Home zh-cn", .Chinese = "Windows 10/11 ͥİ"}, - {.Key = "W269N-WFGWX-YVC9B-4J6C9-T83GX", .English = "Windows 10/11 Pro", .Chinese = "Windows 10/11 רҵ"}, - {.Key = "MH37W-N47XK-V7XM9-C7227-GCQG9", .English = "Windows 10/11 Pro N", .Chinese = "Windows 10/11 רҵ N"}, - {.Key = "NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J", .English = "Windows 10/11 Pro Workstation", .Chinese = "Windows 10/11 רҵվ"}, - {.Key = "9FNHH-K3HBT-3W4TD-6383H-6XYWF", .English = "Windows 10/11 Pro Workstation N", .Chinese = "Windows 10/11 רҵվ N"}, - {.Key = "6TP4R-GNPTD-KYYHQ-7B7DP-J447Y", .English = "Windows 10/11 Pro Edu", .Chinese = "Windows 10/11 רҵ"}, - {.Key = "YVWGF-BXNMC-HTQYQ-CPQ99-66QFC", .English = "Windows 10/11 Pro Edu N", .Chinese = "Windows 10/11 רҵ N"}, - {.Key = "NW6C2-QMPVW-D7KKK-3GKT6-VCFB2", .English = "Windows 10/11 Edu", .Chinese = "Windows 10/11 "}, - {.Key = "2WH4N-8QGBV-H22JP-CT43Q-MDWWJ", .English = "Windows 10/11 Edu N", .Chinese = "Windows 10/11 N"}, - {.Key = "NPPR9-FWDCX-D2C8J-H872K-2YT43", .English = "Windows 10/11 Enterprise", .Chinese = "Windows 10/11 ҵ"}, - {.Key = "DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4", .English = "Windows 10/11 Enterprise N", .Chinese = "Windows 10/11 ҵ N"}, - {.Key = "YYVX9-NTFWV-6MDM3-9PT4T-4M68B", .English = "Windows 10/11 Enterprise G", .Chinese = "Windows 10/11 ҵ G"}, - {.Key = "44RPN-FTY23-9VTTB-MP9BX-T84FV", .English = "Windows 10/11 Enterprise G N", .Chinese = "Windows 10/11 ҵ G N"}, - {.Key = "M7XTQ-FN8P6-TTKYV-9D4CC-J462D", .English = "Windows 10/11 LTSC", .Chinese = "Windows 10/11 ְ֧"}, - {.Key = "92NFX-8DJQP-P6BBQ-THF9C-7CG2H", .English = "Windows 10/11 LTSC N", .Chinese = "Windows 10/11 ְ֧ N"}, - {.Key = "KBN8V-HFGQ4-MGXVD-347P6-PDQGT", .English = "Windows 10/11 IoT LTSC", .Chinese = "Windows 10/11 ְ֧"}, - {.Key = "DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ", .English = "Windows 10/11 LTSB 2016", .Chinese = "Windows 10/11 ְ֧ 2016"}, - {.Key = "QFFDN-GRT3P-VKWWX-X7T3R-8B639", .English = "Windows 10/11 LTSB 2016 N", .Chinese = "Windows 10/11 ְ֧ 2016 N"}, - {.Key = "VDYBN-27WPP-V4HQT-9VMD4-VMK7H", .English = "Windows Server 2022 Standard", .Chinese = "Windows Server 2022 ׼"}, - {.Key = "WX4NM-KYWYW-QJJR4-XV3QB-6VM33", .English = "Windows Server 2022 Datacenter", .Chinese = "Windows Server 2022 İ"}, - {.Key = "NTBV8-9K7Q8-V27C6-M2BTV-KHMXV", .English = "Windows Server 2022 Datacenter Azure", .Chinese = "Windows Server 2022 İ Azure"}, - {.Key = "N69G4-B89J2-4G8F4-WWYCC-J464C", .English = "Windows Server 2019 Standard", .Chinese = "Windows Server 2019 ׼"}, - {.Key = "WMDGN-G9PQG-XVVXX-R3X43-63DFG", .English = "Windows Server 2019 Datacenter", .Chinese = "Windows Server 2019 İ"}, - {.Key = "WVDHN-86M7X-466P6-VHXV7-YY726", .English = "Windows Server 2019 Datacenter Azure", .Chinese = "Windows Server 2019 İ Azure"}, - {.Key = "WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY", .English = "Windows Server 2016 Standard", .Chinese = "Windows Server 2016 ׼"}, - {.Key = "CB7KF-BWN84-R7R2Y-793K2-8XDDG", .English = "Windows Server 2016 Datacenter", .Chinese = "Windows Server 2016 İ"}, - {.Key = "JCKRF-N37P4-C2D82-9YXRT-4M63B", .English = "Windows Server 2016 Datacenter Azure", .Chinese = "Windows Server 2016 İ Azure"}, - {.Key = "N2KJX-J94YW-TQVFB-DG9YT-724CC", .English = "Windows Server Standard Half Year", .Chinese = "Windows Server ׼ "}, - {.Key = "6NMRW-2C8FM-D24W7-TQWMY-CWH2D", .English = "Windows Server Datacenter Half Year", .Chinese = "Windows Server İ "}, + {.Key = "FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4", .English = "Windows 7 Pro", .Chinese = "Windows 7 专业版"}, + {.Key = "MRPKT-YTG23-K7D7T-X2JMM-QY7MG", .English = "Windows 7 Pro N", .Chinese = "Windows 7 专业版 N"}, + {.Key = "W82YF-2Q76Y-63HXB-FGJG9-GF7QX", .English = "Windows 7 Pro E", .Chinese = "Windows 7 专业版 E"}, + {.Key = "33PXH-7Y6KF-2VJC9-XBBR8-HVTHH", .English = "Windows 7 Enterprise", .Chinese = "Windows 7 企业版"}, + {.Key = "YDRBP-3D83W-TY26F-D46B2-XCKRJ", .English = "Windows 7 Enterprise N", .Chinese = "Windows 7 企业版 N"}, + {.Key = "C29WB-22CC8-VJ326-GHFJW-H9DH4", .English = "Windows 7 Enterprise E", .Chinese = "Windows 7 企业版 E"}, + {.Key = "NG4HW-VH26C-733KW-K6F98-J8CK4", .English = "Windows 8 Pro", .Chinese = "Windows 8 专业版"}, + {.Key = "XCVCF-2NXM9-723PB-MHCB7-2RYQQ", .English = "Windows 8 Pro N", .Chinese = "Windows 8 专业版 N"}, + {.Key = "32JNW-9KQ84-P47T8-D8GGY-CWCK7", .English = "Windows 8 Enterprise", .Chinese = "Windows 8 企业版"}, + {.Key = "JMNMF-RHW7P-DMY6X-RF3DR-X2BQT", .English = "Windows 8 Enterprise N", .Chinese = "Windows 8 企业版 N"}, + {.Key = "GCRJD-8NW9H-F2CDX-CCM8D-9D6T9", .English = "Windows 8.1 Pro", .Chinese = "Windows 8.1 专业版"}, + {.Key = "HMCNV-VVBFX-7HMBH-CTY9B-B4FXY", .English = "Windows 8.1 Pro N", .Chinese = "Windows 8.1 专业版 N"}, + {.Key = "MHF9N-XY6XB-WVXMC-BTDCT-MKKG7", .English = "Windows 8.1 Enterprise", .Chinese = "Windows 8.1 企业版"}, + {.Key = "TT4HM-HN7YT-62K67-RGRQJ-JFFXW", .English = "Windows 8.1 Enterprise N", .Chinese = "Windows 8.1 企业版 N"}, + {.Key = "TX9XD-98N7V-6WMQ6-BX7FG-H8Q99", .English = "Windows 10/11 Home", .Chinese = "Windows 10/11 家庭版"}, + {.Key = "PVMJN-6DFY6-9CCP6-7BKTT-D3WVR", .English = "Windows 10/11 Home zh-cn", .Chinese = "Windows 10/11 家庭中文版"}, + {.Key = "W269N-WFGWX-YVC9B-4J6C9-T83GX", .English = "Windows 10/11 Pro", .Chinese = "Windows 10/11 专业版"}, + {.Key = "MH37W-N47XK-V7XM9-C7227-GCQG9", .English = "Windows 10/11 Pro N", .Chinese = "Windows 10/11 专业版 N"}, + {.Key = "NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J", .English = "Windows 10/11 Pro Workstation", .Chinese = "Windows 10/11 专业工作站版"}, + {.Key = "9FNHH-K3HBT-3W4TD-6383H-6XYWF", .English = "Windows 10/11 Pro Workstation N", .Chinese = "Windows 10/11 专业工作站版 N"}, + {.Key = "6TP4R-GNPTD-KYYHQ-7B7DP-J447Y", .English = "Windows 10/11 Pro Edu", .Chinese = "Windows 10/11 专业教育版"}, + {.Key = "YVWGF-BXNMC-HTQYQ-CPQ99-66QFC", .English = "Windows 10/11 Pro Edu N", .Chinese = "Windows 10/11 专业教育版 N"}, + {.Key = "NW6C2-QMPVW-D7KKK-3GKT6-VCFB2", .English = "Windows 10/11 Edu", .Chinese = "Windows 10/11 教育版"}, + {.Key = "2WH4N-8QGBV-H22JP-CT43Q-MDWWJ", .English = "Windows 10/11 Edu N", .Chinese = "Windows 10/11 教育版 N"}, + {.Key = "NPPR9-FWDCX-D2C8J-H872K-2YT43", .English = "Windows 10/11 Enterprise", .Chinese = "Windows 10/11 企业版"}, + {.Key = "DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4", .English = "Windows 10/11 Enterprise N", .Chinese = "Windows 10/11 企业版 N"}, + {.Key = "YYVX9-NTFWV-6MDM3-9PT4T-4M68B", .English = "Windows 10/11 Enterprise G", .Chinese = "Windows 10/11 企业版 G"}, + {.Key = "44RPN-FTY23-9VTTB-MP9BX-T84FV", .English = "Windows 10/11 Enterprise G N", .Chinese = "Windows 10/11 企业版 G N"}, + {.Key = "M7XTQ-FN8P6-TTKYV-9D4CC-J462D", .English = "Windows 10/11 LTSC", .Chinese = "Windows 10/11 长期支持版"}, + {.Key = "92NFX-8DJQP-P6BBQ-THF9C-7CG2H", .English = "Windows 10/11 LTSC N", .Chinese = "Windows 10/11 长期支持版 N"}, + {.Key = "KBN8V-HFGQ4-MGXVD-347P6-PDQGT", .English = "Windows 10/11 IoT LTSC", .Chinese = "Windows 10/11 物联网 长期支持版"}, + {.Key = "DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ", .English = "Windows 10/11 LTSB 2016", .Chinese = "Windows 10/11 长期支持版 2016"}, + {.Key = "QFFDN-GRT3P-VKWWX-X7T3R-8B639", .English = "Windows 10/11 LTSB 2016 N", .Chinese = "Windows 10/11 长期支持版 2016 N"}, + {.Key = "VDYBN-27WPP-V4HQT-9VMD4-VMK7H", .English = "Windows Server 2022 Standard", .Chinese = "Windows Server 2022 标准版"}, + {.Key = "WX4NM-KYWYW-QJJR4-XV3QB-6VM33", .English = "Windows Server 2022 Datacenter", .Chinese = "Windows Server 2022 数据中心版"}, + {.Key = "NTBV8-9K7Q8-V27C6-M2BTV-KHMXV", .English = "Windows Server 2022 Datacenter Azure", .Chinese = "Windows Server 2022 数据中心版 Azure"}, + {.Key = "N69G4-B89J2-4G8F4-WWYCC-J464C", .English = "Windows Server 2019 Standard", .Chinese = "Windows Server 2019 标准版"}, + {.Key = "WMDGN-G9PQG-XVVXX-R3X43-63DFG", .English = "Windows Server 2019 Datacenter", .Chinese = "Windows Server 2019 数据中心版"}, + {.Key = "WVDHN-86M7X-466P6-VHXV7-YY726", .English = "Windows Server 2019 Datacenter Azure", .Chinese = "Windows Server 2019 数据中心版 Azure"}, + {.Key = "WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY", .English = "Windows Server 2016 Standard", .Chinese = "Windows Server 2016 标准版"}, + {.Key = "CB7KF-BWN84-R7R2Y-793K2-8XDDG", .English = "Windows Server 2016 Datacenter", .Chinese = "Windows Server 2016 数据中心版"}, + {.Key = "JCKRF-N37P4-C2D82-9YXRT-4M63B", .English = "Windows Server 2016 Datacenter Azure", .Chinese = "Windows Server 2016 数据中心版 Azure"}, + {.Key = "N2KJX-J94YW-TQVFB-DG9YT-724CC", .English = "Windows Server Standard Half Year", .Chinese = "Windows Server 标准版 半年"}, + {.Key = "6NMRW-2C8FM-D24W7-TQWMY-CWH2D", .English = "Windows Server Datacenter Half Year", .Chinese = "Windows Server 数据中心版 半年"}, {.Key = NULL, .English = NULL, .Chinese = NULL}, }; @@ -118,202 +119,223 @@ void RunSlmgrCommand(const char* command); void ExecActionCommand(void); -/* ϢĻص */ +/* 处理窗口消息的回调函数 */ LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { char Buffer[256] = {0x00}; - switch(Message) { -// case WM_CREATE: { -// // زôͼ -// HICON hicon = (HICON)LoadImage(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_ICON), -// IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE); -// -// if (hicon) -// { -// SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hicon); -// SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hicon); -// } else { -// MessageBox(NULL, "Failed to load icon!", "Error", MB_OK | MB_ICONERROR); -// } -// break; -// } - case WM_DESTROY: { - PostQuitMessage(0); - break; - } - case WM_COMMAND: - // ťĵ¼ - if (LOWORD(wParam) == START_ACTION_BTN_ID) { // жϰťǷ񱻵 - // ϢԿ + switch(Message) { + case WM_CREATE: + { + // 创建微软雅黑字体 + hFont = CreateFont( + 20, // 字体高度 + 0, // 字体宽度 + 0, // 字符旋转角度 + 0, // 字符倾斜角度 + FW_NORMAL, // 字体粗细 + FALSE, // 是否斜体 + FALSE, // 是否下划线 + FALSE, // 是否删除线 + DEFAULT_CHARSET, // 字符集 + OUT_TT_PRECIS, // 输出精度 + CLIP_DEFAULT_PRECIS, // 剪辑精度 + DEFAULT_QUALITY, // 输出质量 + DEFAULT_PITCH | FF_SWISS, // 字体类型 + L"微软雅黑" // 字体名称 + ); + } + break; + case WM_DESTROY: { + // 释放字体资源 + if (hFont) { + DeleteObject(hFont); + hFont = NULL; + } + PostQuitMessage(0); + break; + } + case WM_COMMAND: + // 激活按钮的点击事件 + if (LOWORD(wParam) == START_ACTION_BTN_ID) { // 判断按钮是否被点击 + // 激活信息解析激活密钥 ActionInfo.Key = SystemVersionList[CurSystemVersion].Key; - - // Ϣַ + + // 激活信息解析激活服务器地址 GetWindowText(ActionServerAddr,Buffer,sizeof(Buffer)); ActionInfo.ActionServer = Buffer; ExecActionCommand(); - } - - // бĵ¼ - if (HIWORD(wParam) == CBN_SELCHANGE) { - // жĸ ComboBox ѡ - HWND hComboBox = (HWND)lParam; - - if (hComboBox == SystemLang) + } + + // 两个下拉列表的点击事件 + if (HIWORD(wParam) == CBN_SELCHANGE) { + // 判断哪个 ComboBox 被选中 + HWND hComboBox = (HWND)lParam; + + if (hComboBox == SystemLang) { - // + // 翻译软件 CurSystemLang = SendMessage(hComboBox, CB_GETCURSEL, 0, 0); TranslateApp(); - } else if (hComboBox == SystemVersion) + } else if (hComboBox == SystemVersion) { - // ѡϵͳ汾 + // 选中系统版本 CurSystemVersion = SendMessage(hComboBox, CB_GETCURSEL, 0, 0); - // ϢԿ + // 激活信息解析激活密钥 ActionInfo.Key = SystemVersionList[CurSystemVersion].Key; - } - } - break; - - default: - return DefWindowProc(hwnd, Message, wParam, lParam); - } - return 0; + } + } + break; + + default: + return DefWindowProc(hwnd, Message, wParam, lParam); + } + return 0; } -/* Win32 ڵ */ +/* Win32 程序的入口点 */ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { - - memset(&wc,0,sizeof(wc)); - wc.cbSize = sizeof(WNDCLASSEX); - wc.lpfnWndProc = WndProc; - wc.hInstance = hInstance; - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wc.lpszClassName = "WindowClass"; + + memset(&wc,0,sizeof(wc)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.lpfnWndProc = WndProc; + wc.hInstance = hInstance; + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wc.lpszClassName = "WindowClass"; wc.hIcon = LoadIcon(hInstance, "A"); wc.hIconSm = LoadIcon(hInstance, "A"); - - if(!RegisterClassEx(&wc)) { - MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK); - return 0; - } - - hwnd = CreateWindowEx( - WS_EX_CLIENTEDGE, - "WindowClass", - "Windowsv1.0", - WS_VISIBLE | WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, CW_USEDEFAULT, 450, 260, - NULL, NULL, hInstance, NULL); - - if(hwnd == NULL) { - MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK); - return 0; - } - - // Ŷб + + if(!RegisterClassEx(&wc)) { + MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK); + return 0; + } + + hwnd = CreateWindowEx( + WS_EX_CLIENTEDGE, + "WindowClass", + "紫罗兰Windows激活工具v1.1.1", + WS_VISIBLE | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU, + CW_USEDEFAULT, CW_USEDEFAULT, 480, 260, + NULL, NULL, hInstance, NULL); + + if(hwnd == NULL) { + MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK); + return 0; + } + + // 存放多语言下拉列表 SystemLang = CreateWindowEx( - 0, // չʽ - "COMBOBOX", // ComboBox ע "COMBOBOX" - NULL, // Ĭϱ - CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL, // ComboBox ʽ - INFO_LEFT_MARGIN, 10, // x, y λ - 150, 200, // Ⱥ͸߶ - hwnd, // ھ - 0, // ؼIDʶؼ - hInstance, // ʵ - NULL // ޸Ӳ - ); + 0, // 窗口扩展样式 + "COMBOBOX", // ComboBox 类名,注意这里是 "COMBOBOX" + NULL, // 默认标题 + CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL, // ComboBox 样式 + INFO_LEFT_MARGIN, 10, // x, y 位置 + 180, 200, // 宽度和高度 + hwnd, // 父窗口句柄 + 0, // 控件ID(可以用来识别控件) + hInstance, // 实例句柄 + NULL // 无附加参数 + ); + // 设置下拉列表的字体 + SendMessage(SystemLang, WM_SETFONT, (WPARAM)hFont, TRUE); - // бӵб + // 将语言列表添加到下拉列表中 for(int i = 0;i < GetSystemLangLen();i++){ - // ComboBox ѡ - SendMessage(SystemLang, CB_ADDSTRING, 0, (LPARAM)SystemLangList[i]); + // 向 ComboBox 添加选项 + SendMessage(SystemLang, CB_ADDSTRING, 0, (LPARAM)SystemLangList[i]); } - // Ĭѡеһѡ - SendMessage(SystemLang, CB_SETCURSEL, (WPARAM)0, 0); - - // ϵͳб + // 默认选中第一个选项 + SendMessage(SystemLang, CB_SETCURSEL, (WPARAM)CHINESE, 0); + + // 存放系统列表 SystemVersion = CreateWindowEx( - 0, // չʽ - "COMBOBOX", // ComboBox ע "COMBOBOX" - NULL, // Ĭϱ - CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL, // ComboBox ʽ - INFO_LEFT_MARGIN, 50, // x, y λ - 350, 500, // Ⱥ͸߶ - hwnd, // ھ - 1, // ؼIDʶؼ - hInstance, // ʵ - NULL // ޸Ӳ - ); - - // ϵͳ汾ӵб + 0, // 窗口扩展样式 + "COMBOBOX", // ComboBox 类名,注意这里是 "COMBOBOX" + NULL, // 默认标题 + CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL, // ComboBox 样式 + INFO_LEFT_MARGIN, 50, // x, y 位置 + 420, 500, // 宽度和高度 + hwnd, // 父窗口句柄 + 1, // 控件ID(可以用来识别控件) + hInstance, // 实例句柄 + NULL // 无附加参数 + ); + // 设置下拉列表的字体 + SendMessage(SystemVersion, WM_SETFONT, (WPARAM)hFont, TRUE); + + // 将系统版本添加到下拉列表中 for(int i = 0;i < GetSystemListLen();i++){ - // ComboBox ѡ - SendMessage(SystemVersion, CB_ADDSTRING, 0, (LPARAM)SystemVersionList[i].English); + // 向 ComboBox 添加选项 + SendMessage(SystemVersion, CB_ADDSTRING, 0, (LPARAM)SystemVersionList[i].English); } - - // Ĭѡеһѡ + + // 默认选中第一个选项 SendMessage(SystemVersion, CB_SETCURSEL, (WPARAM)0, 0); - // ǩ + // 激活服务器标签 ActionServerText = CreateWindowEx( - 0, // չʽ - "STATIC", // ǩ - ActionServerStr[CurSystemLang], // ǩı - WS_VISIBLE | WS_CHILD, // ǩʽ - INFO_LEFT_MARGIN, 90, // x, y λ - 150, 20, // Ⱥ͸߶ - hwnd, // ھ - NULL, // ؼID - hInstance, // ʵ - NULL // Ӳ - ); + 0, // 窗口扩展样式 + "STATIC", // 标签类名 + ActionServerStr[CurSystemLang], // 标签文本 + WS_VISIBLE | WS_CHILD, // 标签样式 + INFO_LEFT_MARGIN, 90, // x, y 位置 + 180, 20, // 宽度和高度 + hwnd, // 父窗口句柄 + NULL, // 控件ID + hInstance, // 实例句柄 + NULL // 附加参数 + ); + // 设置下拉列表的字体 + SendMessage(ActionServerText, WM_SETFONT, (WPARAM)hFont, TRUE); - // һ򣨱༭ؼ + // 创建一个输入框(编辑控件) ActionServerAddr = CreateWindowEx( - 0, // չʽ - "EDIT", // ؼ - "kms.03k.org", // Ĭı - WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT, // ʽ - INFO_LEFT_MARGIN, 120, // x, y λ - 150, 24, // Ⱥ͸߶ - hwnd, // ھ - NULL, // ؼID - hInstance, // ʵ - NULL // Ӳ - ); + 0, // 窗口扩展样式 + "EDIT", // 控件类名 + "kms.03k.org", // 默认文本 + WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT, // 样式 + INFO_LEFT_MARGIN, 120, // x, y 位置 + 180, 24, // 宽度和高度 + hwnd, // 父窗口句柄 + NULL, // 控件ID + hInstance, // 实例句柄 + NULL // 附加参数 + ); + // 设置下拉列表的字体 + SendMessage(ActionServerAddr, WM_SETFONT, (WPARAM)hFont, TRUE); - // ť + // 激活按钮 ActionBtn = CreateWindowEx( - 0, // չʽ - "BUTTON", // ť - ActionBtnStr[CurSystemLang], // ťı - WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, // ťʽ - INFO_LEFT_MARGIN, 160, // x, y λ - 100, 30, // Ⱥ͸߶ - hwnd, // ھ - START_ACTION_BTN_ID, // ؼID - hInstance, // ʵ - NULL // Ӳ - ); + 0, // 窗口扩展样式 + "BUTTON", // 按钮类名 + ActionBtnStr[CurSystemLang], // 按钮文本 + WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, // 按钮样式 + INFO_LEFT_MARGIN, 160, // x, y 位置 + 150, 30, // 宽度和高度 + hwnd, // 父窗口句柄 + START_ACTION_BTN_ID, // 控件ID + hInstance, // 实例句柄 + NULL // 附加参数 + ); + // 设置下拉列表的字体 + SendMessage(ActionBtn, WM_SETFONT, (WPARAM)hFont, TRUE); - - // Ϣѭ - while(GetMessage(&msg, NULL, 0, 0) > 0) { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - return msg.wParam; + // 消息循环 + while(GetMessage(&msg, NULL, 0, 0) > 0) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + return msg.wParam; } -// ȡѡб +// 获取多语言选项列表长度 int GetSystemLangLen(void) { int SystemLangNum = 0x00; @@ -332,7 +354,7 @@ int GetSystemLangLen(void) return (SystemLangNum); } -// ȡϵͳ汾бij +// 获取系统版本列表的长度 int GetSystemListLen(void) { int SystemListNum = 0x00; @@ -351,52 +373,50 @@ int GetSystemListLen(void) return (SystemListNum); } -// ִslmgr +// 执行slmgr命令 void RunSlmgrCommand(const char* command) { - // ַ - char fullCommand[256]; - snprintf(fullCommand, sizeof(fullCommand), "cmd.exe /c %s", command); - - // ִ - ShellExecute(NULL, "runas", "cmd.exe", fullCommand, NULL, SW_SHOWNORMAL); + // 创建完整的命令字符串 + char fullCommand[256]; + snprintf(fullCommand, sizeof(fullCommand), "cmd.exe /c %s", command); + + // 执行命令 + ShellExecute(NULL, "runas", "cmd.exe", fullCommand, NULL, SW_SHOWNORMAL); } -// װԿ +// 安装密钥 void InstallKey(void) { char BaseCmd[256] = {"slmgr /ipk "}; - + snprintf(BaseCmd + strlen(BaseCmd), sizeof(BaseCmd) - strlen(BaseCmd), "%s", ActionInfo.Key); RunSlmgrCommand(BaseCmd); - //MessageBox(hwnd, BaseCmd, "ʾ", MB_OK | MB_ICONINFORMATION); + //MessageBox(hwnd, BaseCmd, "提示", MB_OK | MB_ICONINFORMATION); } -// ü +// 设置激活服务器 void SetActionServer(void) { char BaseCmd[256] = {"slmgr /skms "}; - + snprintf(BaseCmd + strlen(BaseCmd), sizeof(BaseCmd) - strlen(BaseCmd), "%s", ActionInfo.ActionServer); RunSlmgrCommand(BaseCmd); - //MessageBox(hwnd, BaseCmd, "ʾ", MB_OK | MB_ICONINFORMATION); + //MessageBox(hwnd, BaseCmd, "提示", MB_OK | MB_ICONINFORMATION); } -// ʼ +// 开始激活 void StartAction(void) { char BaseCmd[256] = {"slmgr /ato "}; RunSlmgrCommand(BaseCmd); - - //MessageBox(hwnd, BaseCmd, "ʾ", MB_OK | MB_ICONINFORMATION); } -// ʼִм +// 开始执行激活命令 void ExecActionCommand(void) { InstallKey(); @@ -405,59 +425,60 @@ void ExecActionCommand(void) } -//Ӣ +//翻译至英文 void TranslateEnglish(void) { - //ϵͳ汾б + //清空系统版本列表 SendMessage(SystemVersion, CB_RESETCONTENT, 0, 0); - // - // ϵͳ汾ӵб + //重新添加 + // 将系统版本添加到下拉列表中 for(int i = 0;i < GetSystemListLen();i++){ - // ComboBox ѡ - SendMessage(SystemVersion, CB_ADDSTRING, 0, (LPARAM)SystemVersionList[i].English); + // 向 ComboBox 添加选项 + SendMessage(SystemVersion, CB_ADDSTRING, 0, (LPARAM)SystemVersionList[i].English); } - // ޸ļıǩ + // 修改激活服务器文本标签 SendMessage(ActionServerText, WM_SETTEXT, 0, (LPARAM)ActionServerStr[CurSystemLang]); - // ޸ļťı + // 修改激活按钮的文本 SendMessage(ActionBtn, WM_SETTEXT, 0, (LPARAM)ActionBtnStr[CurSystemLang]); } -// +//翻译至中文 void TranslateChinese(void) { SendMessage(SystemVersion, CB_RESETCONTENT, 0, 0); - // - // ϵͳ汾ӵб + //重新添加 + // 将系统版本添加到下拉列表中 for(int i = 0;i < GetSystemListLen();i++){ - // ComboBox ѡ - SendMessage(SystemVersion, CB_ADDSTRING, 0, (LPARAM)SystemVersionList[i].Chinese); + // 向 ComboBox 添加选项 + SendMessage(SystemVersion, CB_ADDSTRING, 0, (LPARAM)SystemVersionList[i].Chinese); } - // ޸ļıǩ + // 修改激活服务器文本标签 SendMessage(ActionServerText, WM_SETTEXT, 0, (LPARAM)ActionServerStr[CurSystemLang]); - // ޸ļťı + // 修改激活按钮的文本 SendMessage(ActionBtn, WM_SETTEXT, 0, (LPARAM)ActionBtnStr[CurSystemLang]); } -// +//翻译软件 void TranslateApp(void) { switch (CurSystemLang) { - case ENGLISH: - TranslateEnglish(); - break; - case CHINESE: - TranslateChinese(); - break; - default: - TranslateEnglish(); - break; + case ENGLISH: + TranslateEnglish(); + break; + case CHINESE: + TranslateChinese(); + break; + default: + TranslateEnglish(); + break; } - // Ĭϵͳ汾ѡеһѡ + // 默认系统版本选中第一个选项 SendMessage(SystemVersion, CB_SETCURSEL, (WPARAM)0, 0); } + diff --git a/main.o b/main.o index 612a65d..325813a 100644 Binary files a/main.o and b/main.o differ