NSIS通过变量进入不同的自定义页

2024-04-05 05:58

本文主要是介绍NSIS通过变量进入不同的自定义页,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[b]nsis 相对跳转页面[/b]

跳到上一页面:
SendMessage $HWNDPARENT 0x408 N 0
SendMessage $HWNDPARENT 0x408 -1 0

直接跳到相对当前页面的下1个页面可以这样:
SendMessage $HWNDPARENT 0x408 N 0
SendMessage $HWNDPARENT 0x408 1 0
____________________________________________________
[b]自定义页面跳转[/b]
问题:假设有两个单选按钮, 选择1切换PageY页面, 选择2切换PageS页面。
利用ysSetting 变量, 如果ysSetting是Y, 显示PageY的页面, 否则显示PageS的页面。
[img]http://dl2.iteye.com/upload/attachment/0106/2353/da5d42d3-dd06-3c3d-b2ea-1a39123b9431.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0106/2359/b218c7e3-5340-3600-8ec7-8142b9629427.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0106/2361/fa3184b3-c2d2-3c2c-86e6-94ae2a0efeb4.png[/img]

1.首先我们有3个 自定义页面
;Page.ini 为第一个页面

[Settings]
NumFields=3

[Field 1]
Type=GroupBox
Left=2
Right=-1
Top=20
Bottom=-55
Text=选择院/所:

[Field 2]
Type=RadioButton
Text=院级
Left=10
Right=40
Top=35
Bottom=65
State=1
Flags=

[Field 3]
Type=RadioButton
Text=所级
Left=60
Right=90
Top=35
Bottom=65
State=0
Flags=



2.利用逻辑语句切换ini文件

Page Custom PagePre PageLeave

;动态页面
Page Custom PageYorSPre PageYorSLeave

Function .OnInit
InitPluginsDir
File /oname=$PLUGINSDIR\page.ini "Page.ini"
File /oname=$PLUGINSDIR\pageY.ini "PageY.ini"
File /oname=$PLUGINSDIR\pageS.ini "PageS.ini"
FunctionEnd

Function PagePre
!insertmacro MUI_HEADER_TEXT "设置院所" "请选择安装级别(院级/所级)"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "page.ini"
FunctionEnd

Function PageLeave
!insertmacro MUI_INSTALLOPTIONS_READ $0 "page.ini" "Field 2" "State"

${If} $0 == 1
StrCpy $ysSetting "Y"
${Else}
StrCpy $ysSetting "S"
${EndIf}

FunctionEnd


[color=red][b]关键代码[/b][/color]
Function PageYorSPre
${if} $ysSetting != "S"
!insertmacro MUI_HEADER_TEXT "设置院" "请填写管理所个数"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "pageY.ini"
${Else}
!insertmacro MUI_HEADER_TEXT "设置所" "请勾选创建库类型"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "pageS.ini"
${EndIf}
FunctionEnd

Function PageYorSLeave
FunctionEnd

这篇关于NSIS通过变量进入不同的自定义页的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877792

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u