├── .github
└── FUNDING.yml
├── VimeoSetup
├── App
│ └── place setup files to this folder
├── vimeo.ico
├── VCRuntimeDLL
│ ├── msvcp140.dll
│ ├── ucrtbase.dll
│ ├── concrt140.dll
│ ├── concrt140d.dll
│ ├── msvcp140_1.dll
│ ├── msvcp140_2.dll
│ ├── msvcp140d.dll
│ ├── ucrtbased.dll
│ ├── msvcp140_1d.dll
│ ├── msvcp140_2d.dll
│ ├── vccorlib140.dll
│ ├── vccorlib140d.dll
│ ├── vcruntime140.dll
│ └── vcruntime140d.dll
├── build-setup.bat
├── build-setup [debug].bat
└── vimeo-template.nsi
├── Screenshot
├── 1.png
├── 2.png
└── 3.png
├── NSIS-UI-Plugin
├── resource.h
├── NSIS-UI-Plugin.rc
├── Qt-UI
│ ├── Qt-FramelessWindow
│ │ ├── FramelessMainWindow.cpp
│ │ └── FramelessMainWindow.h
│ ├── SetupPage-Qt.h
│ └── SetupPage-Qt.cpp
├── Resources
│ ├── DefaultTheme
│ │ ├── DefaultTheme.qrc
│ │ ├── minimize.svg
│ │ ├── minimize_hover.svg
│ │ ├── close.svg
│ │ ├── close_hover.svg
│ │ ├── openfolder.svg
│ │ ├── openfolder_hover.svg
│ │ ├── main.css
│ │ ├── button_bk.svg
│ │ └── qt.svg
│ └── MainPage.ui
├── NSIS-UI-Plugin.sln
├── stdafx.cpp
├── InstallEvent.h
├── stdafx.h
├── SetupPageInterface.h
├── dllmain.cpp
├── DriverInfo.h
├── PluginContext.h
├── NSIS-UI-Plugin.vcxproj.filters
├── PluginContext.cpp
├── PluginCommon.h
├── NSISUIPlugin.cpp
├── NSIS-UI-Plugin.vcxproj
└── DriverInfo.cpp
├── .gitignore
├── LICENSE
├── README_ch.md
├── README.md
└── NsisScriptGenerate.py
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/VimeoSetup/App/place setup files to this folder:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Screenshot/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/Screenshot/1.png
--------------------------------------------------------------------------------
/Screenshot/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/Screenshot/2.png
--------------------------------------------------------------------------------
/Screenshot/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/Screenshot/3.png
--------------------------------------------------------------------------------
/VimeoSetup/vimeo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/vimeo.ico
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/resource.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/NSIS-UI-Plugin/resource.h
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/NSIS-UI-Plugin.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/NSIS-UI-Plugin/NSIS-UI-Plugin.rc
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/msvcp140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/msvcp140.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/ucrtbase.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/ucrtbase.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/concrt140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/concrt140.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/concrt140d.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/concrt140d.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/msvcp140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/msvcp140_1.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/msvcp140_2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/msvcp140_2.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/msvcp140d.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/msvcp140d.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/ucrtbased.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/ucrtbased.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/msvcp140_1d.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/msvcp140_1d.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/msvcp140_2d.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/msvcp140_2d.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/vccorlib140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/vccorlib140.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/vccorlib140d.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/vccorlib140d.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/vcruntime140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/vcruntime140.dll
--------------------------------------------------------------------------------
/VimeoSetup/VCRuntimeDLL/vcruntime140d.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/VimeoSetup/VCRuntimeDLL/vcruntime140d.dll
--------------------------------------------------------------------------------
/VimeoSetup/build-setup.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | python.exe ..\NsisScriptGenerate.py "%~dp0vimeo-template.nsi" "%~dp0App"
3 | "%NSIS_DIR%\makensisw.exe" "%~dp0\vimeo.nsi"
4 |
5 | PAUSE
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Qt-UI/Qt-FramelessWindow/FramelessMainWindow.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/winsoft666/NSIS-UI-Plugin/HEAD/NSIS-UI-Plugin/Qt-UI/Qt-FramelessWindow/FramelessMainWindow.cpp
--------------------------------------------------------------------------------
/VimeoSetup/build-setup [debug].bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | python.exe ..\NsisScriptGenerate.py "%~dp0vimeo-template.nsi" "%~dp0App"
3 | "%NSIS_DIR%\makensisw.exe" /DDEBUG=1 "%~dp0\vimeo.nsi"
4 |
5 | PAUSE
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 | *.d
3 |
4 | # Compiled Object files
5 | *.slo
6 | *.lo
7 | *.o
8 | *.obj
9 |
10 | # Precompiled Headers
11 | *.gch
12 | *.pch
13 |
14 | # Compiled Dynamic libraries
15 | *.so
16 | *.dylib
17 | *.dll
18 |
19 | # Fortran module files
20 | *.mod
21 | *.smod
22 |
23 | # Compiled Static libraries
24 | *.lai
25 | *.la
26 | *.a
27 | *.lib
28 |
29 | # Executables
30 | *.exe
31 | *.out
32 | *.app
33 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/DefaultTheme.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.css
4 | qt.svg
5 | close.svg
6 | minimize.svg
7 | close_hover.svg
8 | minimize_hover.svg
9 | button_bk.svg
10 | openfolder.svg
11 | openfolder_hover.svg
12 |
13 |
14 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/minimize.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/minimize_hover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/close_hover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 winsoft666
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.
22 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/openfolder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/NSIS-UI-Plugin.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.902
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NSIS-UI-Plugin", "NSIS-UI-Plugin.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x86 = Debug|x86
11 | Release|x86 = Release|x86
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.ActiveCfg = Debug|Win32
15 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.Build.0 = Debug|Win32
16 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.ActiveCfg = Release|Win32
17 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.Build.0 = Release|Win32
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {3A45B80A-084E-4E86-BF77-1A551F13B787}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/openfolder_hover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Qt-UI/Qt-FramelessWindow/FramelessMainWindow.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 | class FramelessMainWindow : public QMainWindow {
5 | Q_OBJECT
6 | public:
7 | enum class Direction {
8 | UP = 0,
9 | DOWN = 1,
10 | LEFT,
11 | RIGHT,
12 | LEFTTOP,
13 | LEFTBOTTOM,
14 | RIGHTBOTTOM,
15 | RIGHTTOP,
16 | NONE
17 | };
18 |
19 | static void setAllWidgetMouseTracking(QWidget *widget);
20 | static void loadStyleSheetFile(const QString &sheetName, QWidget *widget);
21 |
22 | FramelessMainWindow(bool translucentBackground, QWidget *parent = Q_NULLPTR);
23 | virtual ~FramelessMainWindow();
24 | virtual void setTitlebar(QVector titleBar);
25 | virtual void setResizeable(bool b);
26 | virtual bool resizeable() const;
27 | protected:
28 | bool eventFilter(QObject *target, QEvent *event) override;
29 | void mouseDoubleClickEvent(QMouseEvent *event) override;
30 | void mousePressEvent(QMouseEvent *event) override;
31 | void mouseMoveEvent(QMouseEvent *event) override;
32 | void mouseReleaseEvent(QMouseEvent *event) override;
33 | void resizeEvent(QResizeEvent *event) override;
34 | virtual void region(const QPoint &cursorGlobalPoint);
35 | protected:
36 | bool m_bLeftPressed;
37 | bool m_bEnableResize;
38 | Direction m_Direction;
39 | const int m_iResizeRegionPadding;
40 | QPoint m_DragPos;
41 | QVector m_titlebarWidget;
42 | };
43 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/main.css:
--------------------------------------------------------------------------------
1 | * {
2 | font-family: Microsoft YaHei;
3 | }
4 |
5 | QWidget#widgetTitle {
6 | border-top-right-radius: 8px;
7 | border-top-left-radius: 8px;
8 | background-color: rgb(79, 133, 233);
9 | }
10 |
11 |
12 |
13 | QWidget#centralWidget {
14 | background-color: rgb(255,255,255);
15 | border-radius: 8px;
16 | border: 1px solid rgb(79, 133, 233);
17 | /*
18 | [see also]:
19 | border-top-left-radius
20 | border-top-right-radius
21 | border-bottom-left-radius
22 | border-bottom-right-radius
23 | */
24 | }
25 |
26 | QWidget#tabWidget::pane {
27 | /*border: none;*/
28 | /*border-bottom-left-radius: 8px;
29 | border-bottom-right-radius: 8px;*/
30 | }
31 |
32 |
33 | QSvgWidget#widgetLogo {
34 | image: url(:/DefaultTheme/qt.svg);
35 | }
36 |
37 | #labelTitle {
38 | color: rgb(255,255,255);
39 | }
40 |
41 | #pushButtonMin {
42 | border: none;
43 | image: url(:/DefaultTheme/minimize.svg);
44 | }
45 |
46 | #pushButtonMin:hover {
47 | border: none;
48 | image: url(:/DefaultTheme/minimize_hover.svg);
49 | }
50 |
51 | #pushButtonClose {
52 | border: none;
53 | image: url(:/DefaultTheme/close.svg);
54 | }
55 |
56 | #pushButtonClose:hover {
57 | border: none;
58 | image: url(:/DefaultTheme/close_hover.svg);
59 | }
60 |
61 | #pushButtonStartInstall, #pushButtonToFinishedPage, #pushButtonFinish {
62 | border: none;
63 | border-radius: 4px;
64 | color: #e6e6e6;
65 | background-color: #1296db;
66 | }
67 |
68 | #pushButtonStartInstall:hover, #pushButtonToFinishedPage:hover, #pushButtonFinish:hover {
69 | border: none;
70 | border-radius: 4px;
71 | color: #ffffff;
72 | background-color: #1296db;
73 | }
74 |
75 | #pushButtonSelectInstallDir {
76 | border: none;
77 | image: url(:/DefaultTheme/openfolder.svg);
78 | }
79 |
80 | #pushButtonSelectInstallDir:hover {
81 | border: none;
82 | image: url(:/DefaultTheme/openfolder_hover.svg);
83 | }
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/stdafx.cpp:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************************************************************************
2 | #@@ *@ *@@%#@@# &@ #@%@@, @( &@ .@. @@@@@@@% @ @( &@ .@@@%&@@& &@ @@# %@
3 | #@/@ *@ *@ @% &@ %@ @/ @( &@ .@. @, ,@ @ @( &@ @@ @* &@ @,&@ %@
4 | #@ @( *@ ,@ &@ #@ @( &@ .@. @, @* @ @( &@ @& &@ @, *@ %@
5 | #@ &@ *@ @@@, &@ *@@% @( &@ .@. @, &@ @ @( &@ @, &@ @, @( %@
6 | #@ ,@ *@ .@@. &@ (@@ @( &@ .@. @@@@@@% @ @( &@ @, @@@@@& &@ @, @@ %@
7 | #@ @/ *@ *@ &@ &@ @( @@ .@. @, @ @( @@ @& && &@ @, (@. %@
8 | #@ @@,@ @@ (@ &@ @# &@ (@ (@. .@. @, @ (@ (@. @@ && &@ @, @%%@
9 | #@ *@@ (@@%#&@& &@ %@@#%@@( @@@%&@@( .@. @, @@@@@@@@ @@@%&@@( @@@%&@@@ &@ @, %@@
10 |
11 | * Copyright (C) 2018 - 2020, winsoft666, .
12 | *
13 | * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
14 | * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
15 | * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
16 | *
17 | * Expect bugs
18 | *
19 | * Please use and enjoy.
20 | * Please let me know of any bugs/improvements that you have found/implemented and I will fix/incorporate them into this file.
21 | ********************************************************************************************************************************************************/
22 |
23 | #include "stdafx.h"
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/Resources/DefaultTheme/button_bk.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README_ch.md:
--------------------------------------------------------------------------------
1 | [>>> English Version](README.md)
2 |
3 | # 介绍
4 | 提供一种创建漂亮地、现代化地Windows平台安装界面的方式。
5 | 默认使用Qt作为界面库,理论上你也可以使用任何界面库来创建安装界面,如[DuiLib](https://github.com/winsoft666/duilib2)等。
6 |
7 | ---
8 |
9 | # 依赖项
10 |
11 | **1. NSIS**
12 |
13 | 从[https://nsis.sourceforge.io/Download](https://nsis.sourceforge.io/Download) 下载NSIS并安装,新增系统环境变量`NSIS_DIR`为NSIS安装目录。
14 |
15 | **2. Python**
16 |
17 | 之所以需要安装Python,主要是为了执行`NsisScriptGenerate.py`脚本。
18 |
19 | 将`Python.exe`所在目录添加到`Path`环境变量。
20 |
21 | **3. Qt**
22 |
23 | 因为插件默认使用Qt作为界面库,所以需要安装Qt。
24 |
25 | Qt安装包会默认将安装目录添加`QTDIR`环境变量,如果没有自动添加,则需要手动添加。
26 |
27 | **4. Visual Studio**
28 |
29 | 安装 Visual Studio,并安装 Qt VS Tool 插件及配置 Qt 版本和路径。
30 |
31 | ---
32 |
33 | # 开始使用
34 |
35 | **编译NSIS-UI-Plugin**
36 |
37 | 安装完上面依赖项之后,打开`NSIS-UI-Plugin\NSIS-UI-Plugin.vcxproj`工程,在项目属性页中设置 Qt 版本。
38 |
39 | 然后编译该项目,Visual Studio 的生成后事件会自动将目标文件(Debug版:`nsQtPluginD.dll` Release版:`nsPlugin.dll`)拷贝到NSIS插件目录(`NSIS_DIR\Plugins\x86-unicode`)。
40 |
41 | 如果拷贝失败,可能是权限问题导致,需要以管理员权限运行 Visual Studio 后再次编译。
42 |
43 | **生成安装包**
44 |
45 | `VimeoSetup`是一个关于如何在NSIS中使用该插件的示例工程:
46 |
47 | ```txt
48 | App -- 放置需要打包到安装包中的文件
49 | VCRuntimeDLL -- 放置VC++运行时库文件(Debug版和Release版),Qt界面库默认采用MD模式编译,运行时需要依赖VC++运行时库
50 | vimeo-template.nsi -- NSIS模板文件,文件名的`-template`后缀固定的,NsisScriptGenerate.py会根据该模板生成vimeo.nsi
51 | build-setup [debug].bat -- 生成Debug版的安装包,即使用Debug版的Qt和NSIS-UI-Plugin
52 | build-setup [debug].bat -- 生成Release版的安装包
53 | ```
54 |
55 | 将需要打包的文件放置到`App`目录,然后运行`build-setup.bat`生成安装包。
56 |
57 | >`NsisScriptGenerate.py`脚本功能:因为NSIS没有提供获取文件释放进度的功能,所以`NsisScriptGenerate.py`遍历`App`目录,采用`File`命令挨个添加文件,并调用插件接口`SetInstallStepDescription`通知安装详情。
58 |
59 | ---
60 |
61 | # 截图
62 |
63 | 仅用作示例,你可以使用任意界面库创建任意的界面。
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | # 赞助
72 |
73 | 感谢您能使用本项目,如果这个项目能对您产生帮助,对我而言也是一件非常开心的事情。
74 |
75 | **可以前往我的 Github [主页](https://github.com/winsoft666) 进行赞助。**
76 |
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/InstallEvent.h:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************************************************************************
2 | #@@ *@ *@@%#@@# &@ #@%@@, @( &@ .@. @@@@@@@% @ @( &@ .@@@%&@@& &@ @@# %@
3 | #@/@ *@ *@ @% &@ %@ @/ @( &@ .@. @, ,@ @ @( &@ @@ @* &@ @,&@ %@
4 | #@ @( *@ ,@ &@ #@ @( &@ .@. @, @* @ @( &@ @& &@ @, *@ %@
5 | #@ &@ *@ @@@, &@ *@@% @( &@ .@. @, &@ @ @( &@ @, &@ @, @( %@
6 | #@ ,@ *@ .@@. &@ (@@ @( &@ .@. @@@@@@% @ @( &@ @, @@@@@& &@ @, @@ %@
7 | #@ @/ *@ *@ &@ &@ @( @@ .@. @, @ @( @@ @& && &@ @, (@. %@
8 | #@ @@,@ @@ (@ &@ @# &@ (@ (@. .@. @, @ (@ (@. @@ && &@ @, @%%@
9 | #@ *@@ (@@%#&@& &@ %@@#%@@( @@@%&@@( .@. @, @@@@@@@@ @@@%&@@( @@@%&@@@ &@ @, %@@
10 |
11 | * Copyright (C) 2018 - 2020, winsoft666, .
12 | *
13 | * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
14 | * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
15 | * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
16 | *
17 | * Expect bugs
18 | *
19 | * Please use and enjoy.
20 | * Please let me know of any bugs/improvements that you have found/implemented and I will fix/incorporate them into this file.
21 | ********************************************************************************************************************************************************/
22 |
23 | #pragma once
24 |
25 | #define INSTALL_EVENT_UI_PREPARED TEXT("UI_PREPARED")
26 | #define INSTALL_EVENT_START_EXTRACT_FILES TEXT("START_EXTRACT_FILES")
27 | #define INSTALL_EVENT_USER_CANCEL TEXT("USER_CANCEL")
28 | #define INSTALL_EVENT_BEFORE_FINISHED TEXT("BEFORE_FINISHED")
--------------------------------------------------------------------------------
/NSIS-UI-Plugin/stdafx.h:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************************************************************************
2 | #@@ *@ *@@%#@@# &@ #@%@@, @( &@ .@. @@@@@@@% @ @( &@ .@@@%&@@& &@ @@# %@
3 | #@/@ *@ *@ @% &@ %@ @/ @( &@ .@. @, ,@ @ @( &@ @@ @* &@ @,&@ %@
4 | #@ @( *@ ,@ &@ #@ @( &@ .@. @, @* @ @( &@ @& &@ @, *@ %@
5 | #@ &@ *@ @@@, &@ *@@% @( &@ .@. @, &@ @ @( &@ @, &@ @, @( %@
6 | #@ ,@ *@ .@@. &@ (@@ @( &@ .@. @@@@@@% @ @( &@ @, @@@@@& &@ @, @@ %@
7 | #@ @/ *@ *@ &@ &@ @( @@ .@. @, @ @( @@ @& && &@ @, (@. %@
8 | #@ @@,@ @@ (@ &@ @# &@ (@ (@. .@. @, @ (@ (@. @@ && &@ @, @%%@
9 | #@ *@@ (@@%#&@& &@ %@@#%@@( @@@%&@@( .@. @, @@@@@@@@ @@@%&@@( @@@%&@@@ &@ @, %@@
10 |
11 | * Copyright (C) 2018 - 2020, winsoft666, .
12 | *
13 | * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
14 | * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
15 | * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
16 | *
17 | * Expect bugs
18 | *
19 | * Please use and enjoy.
20 | * Please let me know of any bugs/improvements that you have found/implemented and I will fix/incorporate them into this file.
21 | ********************************************************************************************************************************************************/
22 |
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include