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

相关文章

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

Perl 特殊变量详解

《Perl特殊变量详解》Perl语言中包含了许多特殊变量,这些变量在Perl程序的执行过程中扮演着重要的角色,:本文主要介绍Perl特殊变量,需要的朋友可以参考下... perl 特殊变量Perl 语言中包含了许多特殊变量,这些变量在 Perl 程序的执行过程中扮演着重要的角色。特殊变量通常用于存储程序的

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

【前端学习】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,所以直接一