electron nsis打包windows应用程序

embedded/2024/9/22 11:59:48/

使用electron开发应用程序之后,经常会单独对windows做32位或者是64位程序打包操作,有时候默认的程序做不了相应的需求,往往需要添加单独的页面或者是修改默认的操作,比如一下添加一个默认的选择页面:

自定义脚本代码如下所示:

!define MUI_LANGUAGE "Chinese"
Unicode true

!include nsDialogs.nsh
!include LogicLib.nsh

#OutFile nsDialogs.exe
#RequestExecutionLevel user
#ShowInstDetails show

Var Dialog
Var Bool_mysql
Var Bool_java

;mysql
Var Ck_mysql
;java
Var Ck_java

Page custom pgPageCreate pgPageLeave
Function pgPageCreate
    nsDialogs::Create 1018
    Pop $Dialog

    ${If} $Dialog == error
        Abort
    ${EndIf}

        ${NSD_Createcheckbox} 50u 0u 70u 20u  "mysql"
        Pop $Ck_mysql
        StrCpy $1 $Ck_mysql
        GetFunctionAddress $3 OnClick_CheckMysql
        nsDialogs::onClick $1 $3
        StrCpy $Bool_mysql 0
    
        ${NSD_Createcheckbox} 50u 40u 70u 20u  "java"
        Pop $Ck_java
        StrCpy $1 $Ck_java
        GetFunctionAddress $3 OnClick_CheckJava
        nsDialogs::onClick $1 $3
        StrCpy $Bool_java 0
    nsDialogs::Show
FunctionEnd

Function PgPageLeave
FunctionEnd

Function OnClick_CheckMysql
    ${IF} $Bool_mysql == 1
         IntOp $Bool_mysql $Bool_mysql - 1
         StrCpy $1 $Ck_mysql
    ${ELSE}
         IntOp $Bool_mysql $Bool_mysql + 1
         StrCpy $1 $Ck_mysql
    ${EndIf}
FunctionEnd

Function OnClick_CheckJava
    ${IF} $Bool_java == 1
         IntOp $Bool_java $Bool_java - 1
         StrCpy $1 $Ck_java
    ${ELSE}
         IntOp $Bool_java $Bool_java + 1
         StrCpy $1 $Ck_java
    ${EndIf}
FunctionEnd

!macro customInstall
    ${If} $Bool_mysql == 0
    ${ELSE}
        MessageBox MB_OK  "001" IDOK 
    ${EndIf}

    ${If} $Bool_java == 0
        MessageBox MB_OK  "200" IDOK 
    ${ELSE}
        MessageBox MB_OK  "201" IDOK 
    ${EndIf}
!macroend

Section "MainSection" SEC01
SectionEnd


http://www.ppmy.cn/embedded/115014.html

相关文章

深度学习-03 Pytorch

损失函数是用来衡量模型预测结果与真实值之间的差异,并用来优化模型的指标。在机器学习和神经网络中,常用的损失函数包括均方误差(Mean Squared Error,MSE)、交叉熵(Cross-Entropy)等。 反向传播…

LabVIEW编程能力如何能突飞猛进

要想让LabVIEW编程能力实现突飞猛进,需要采取系统化的学习方法,并结合实际项目进行不断的实践。以下是一些提高LabVIEW编程能力的关键策略: 1. 扎实掌握基础 LabVIEW的编程本质与其他编程语言不同,它是基于图形化的编程方式&…

数据结构之结构体

1.求 sizeof(name1)?(晟安信息) struct name1{ char str; //1 short x;//2 int num;//4 }; 答案:8字节 2.(电工时代) typedef struct _a { char c1;//1 long i;//8 char c2;//1 double f;//8 }a; typedef struct _b { char c1;//1 char c2;//1 long i;//…

【架构设计】多级缓存:应用案例与问题解决策略

【架构设计】多级缓存:应用案例与问题解决策略 多级缓存系统的工作原理及其在提升应用性能方面的关键作用。通过对比本地缓存与分布式缓存的特点 | 原创作者/编辑:凯哥Java | 分类:架构设计系列教程 多…

大数据-142 - ClickHouse 集群 副本和分片 Distributed 附带案例演示

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

PPTP、L2TP、SSTP协议和HTTP、SOCKS5代理:全面解析与对比

在网络安全和隐私保护的领域中,虚拟专用网络已经成为保护隐私和安全访问网络资源的必备工具。而在虚拟专用网络的世界中,PPTP、L2TP和SSTP协议是三大广泛使用的协议。今天,我们将深入探讨这三种协议的特点、优缺点以及适用场景。 PPTP协议&a…

pgvector docker版安装;稀疏向量使用;psycopg2 python连接使用

参看: https://cloud.tencent.com/developer/article/2359831 https://hub.docker.com/r/pgvector/pgvector/tags https://github.com/pgvector/pgvector 一、安装 拉取0.7版本 docker pull pgvector/pgvector:0.7.4-pg16运行: docker run --name pgvector -v $(pwd)/dat…

LEAN 赋型唯一性(Unique Typing)之 Church-Rosser 定理 (Church-Rosser Theorem)及 赋型唯一性的证明

有了并行K简化的概念及其属性,以及其在LEAN类型理论中的相关证明,就可以证明,在K简化下的Church-Rosser 定理。即: 其过程如下: 证明如下: 其中的 lemma 4.9 和 4.10 ,及 4.8 是 这整个证明过程…