NSIS脚本学习:弹出窗口的MessageBox的使用方法详解 您所在的位置:网站首页 toastrjs便捷消息提示弹框使用方法详解 NSIS脚本学习:弹出窗口的MessageBox的使用方法详解

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解

2024-06-02 11:34| 来源: 网络整理| 查看: 265

转载 http://www.it610.com/article/5021924.htm

摘要:这几天准备系统性地学习一下NSIS脚本的编写.NSIS脚本中的MessageBox,语法如下:MessageBox mb_option_list messagebox_text [/ SD return] [return_check jumpto] [return_check_2 jumpto_2] mb_option_list中列出了MessageBox的设定,有多个设定同时起作用时可用竖

这几天准备系统性地学习一下NSIS脚本的编写。

NSIS脚本中的消息框,语法如下:

MessageBox mb_option_list messagebox_text [/ SD return]      [return_check jumpto] [return_check_2 jumpto_2]

mb_option_list中列出了的MessageBox的设定,有多个设定同时起作用时可用竖线(|)隔开,messagebox_text列出了的MessageBox中正文部分显示的文字,/ SD表示静默安装时默认返回的结果,return_check,return_check_2列出了两种不同的返回值,jumpto,jumpto_2分别列出了收到两种不同返回值后应跳转到的跳转语句标签。

不同按钮的返回值如下:

1,IDABORT - 中止按钮 - 【中止】按钮

2,IDCANCEL - 取消按钮 - 【取消】按钮

3,IDIGNORE - 忽略按钮 - 【忽略】按钮

4,IDNO - 无按钮 - 【否】按钮

5,IDOK - OK按钮 - 【确定】按钮

6,IDRETRY - 重试按钮 - 【重试】按钮

7,IDYES - 是按钮 - 【是】按钮

下面这段代码,可以当做一个模板:

!define DEBUG_PATH“E:\ NSIS_Test \ TmpProgram” !define OUTPUT_PATH“E:\ NSIS_Test \ Output” 名称“NSIS_MessageBox_Test” 标题“NSIS_MessageBox_Test” 功能.onInit   ; TODO - 这里输入要测试的代码 FunctionEnd OutFile“Galatea.exe” “我的计划”部分   SetOutPath $ {OUTPUT_PATH}   文件/ r“$ {DEBUG_PATH} \ *。*” SectionEnd

我使用HM NSIS编辑2.0.3工具编辑NSIS脚本,使用编译工具makensis.exe(版本号2.46)进行编译

本文中测试用的代码都写在.onInit函数中

就mb_option_list中的每个属性,我都写了段代码测试效果:

1,MB_OK - 使用OK按钮显示

MessageBox中只显示一个确定按钮

 

功能.onInit   ;这里输入要测试的代码   MessageBox MB_OK“MB_OK - 使用OK按钮显示”/ SD IDOK IDOK label_ok label_ok:   MessageBox MB_OK“你点击了OK” FunctionEnd

2,MB_OKCANCEL - 显示OK和取消按钮

消息框显示确定和取消两个按钮

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第1张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_OKCANCEL“MB_OKCANCEL - 显示确定和取消按钮”     / SD IDOK IDOK label_ok IDCANCEL label_cancel label_ok:   MessageBox MB_OK“你点击了OK”   转到结束 label_cancel:   MessageBox MB_OK“你点击了取消”   转到结束 结束: FunctionEnd

3,MB_ABORTRETRYIGNORE - 显示中止,重试,忽略按钮

消息框显示中止,重试和忽略三个按钮

 

下面是一个错误的写法:

功能.onInit   ;这里输入要测试的代码   MessageBox MB_ABORTRETRYIGNORE“MB_ABORTRETRYIGNORE - 显示中止,重试,忽略按钮”\     / SD IDABORT IDABORT label_abort IDRETRY label_retry IDIGNORE label_ignore label_abort:   MessageBox MB_OK“你点击了Abort”   转到结束 label_retry:   MessageBox MB_OK“你点击了重试”   转到结束 label_ignore:   MessageBox MB_OK“你点击了忽略”   转到结束 结束: FunctionEnd

这个写法的报错信息如下:

功能:“。onInit” MessageBox需要2-8个参数,得到10个。 用法:MessageBox模式messagebox_text [/ SD return] _         [return_check label_to_goto_if_equal [return_check2 label2]]     模式= modeflag [| modeflag [| modeflag [...]]]     modeflag =(MB_ABORTRETRYIGNORE | MB_OK | MB_OKCANCEL | MB_RETRYCANCEL | MB_YESNO | MB_YESNOCANCEL _         | MB_ICONEXCLAMATION | MB_ICONINFORMATION | MB_ICONQUESTION | MB_ICONSTOP | MB_USERICON _         | MB_TOPMOST | MB_SETFOREGROUND | MB_RIGHT 第7行脚本“E:\ NSIS_Test \ galatea.nsi”出错 - 中止创建过程

里面说的MessageBox只能有2-8个参数,在上面那段错误的代码中我们传入了10个参数。解决这一问题的方法,就是少写一个return_check条件。

功能.onInit   ;这里输入要测试的代码   MessageBox MB_ABORTRETRYIGNORE“MB_ABORTRETRYIGNORE - 显示中止,重试,忽略按钮”\     / SD IDABORT IDRETRY label_retry IDIGNORE label_ignore   MessageBox MB_OK“你点击了Abort”   转到结束 label_retry:   MessageBox MB_OK“你点击了重试”   转到结束 label_ignore:   MessageBox MB_OK“你点击了忽略”   转到结束 结束: FunctionEnd

4,MB_RETRYCANCEL - 显示重试和取消按钮

消息框显示重试和取消两个按钮

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第2张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_RETRYCANCEL“MB_RETRYCANCEL - 显示重试和取消按钮”\     / SD IDRETRY IDRETRY label_retry IDCANCEL label_cancel label_retry:   MessageBox MB_OK“你点击了重试”   转到结束 label_cancel:   MessageBox MB_OK“你点击了取消”   转到结束 结束: FunctionEnd

5,MB_YESNO - 显示是和否按钮

消息框显示是和否两个按钮

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第3张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_YESNO“MB_YESNO - 显示是和否按钮”\     / SD IDYES IDYES label_yes IDNO label_no label_yes:   MessageBox MB_OK“你点击了是”   转到结束 label_no:   MessageBox MB_OK“你点击了否”   转到结束 结束: FunctionEnd

6,MB_YESNOCANCEL - 显示是,否,取消按钮

消息框显示是,否和取消三个按钮

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第4张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_YESNOCANCEL“MB_YESNOCANCEL - 显示是,否,取消按钮”\     / SD IDYES IDNO label_no IDCANCEL label_cancel label_yes:   MessageBox MB_OK“你点击了是”   转到结束 label_no:   MessageBox MB_OK“你点击了否”   转到结束 label_cancel:   MessageBox MB_OK“你点击了取消”   转到结束 结束: FunctionEnd

7,MB_ICONEXCLAMATION - 显示带感叹号图标

消息框显示警告标记,可与前面按钮设置相关的功能选项共用

 

功能.onInit   ;这里输入要测试的代码   MessageBox MB_ICONEXCLAMATION“MB_ICONEXCLAMATION - 显示带感叹号图标”\     / SD IDYES IDYes label_yes label_yes:   MessageBox MB_OK“你点击了是” FunctionEnd

8,MB_ICONINFORMATION - 显示信息图标

MessageBox的显示信息标记,可与前面按钮设置相关的功能选项共用

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第5张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_ICONINFORMATION“MB_ICONINFORMATION - 显示信息图标”     / SD IDYES IDYes label_yes label_yes:   MessageBox MB_OK“你点击了是” FunctionEnd

9,MB_ICONQUESTION - 显示问号图标

消息框显示询问标记,可与前面按钮设置相关的功能选项共用

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第6张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_YESNO | MB_ICONQUESTION“MB_ICONQUESTION - 显示问号图标”\     / SD IDYES IDYES label_yes IDNO label_no label_yes:   MessageBox MB_OK“你点击了是”   转到结束 label_no:   MessageBox MB_OK“你点击了否”   转到结束 结束: FunctionEnd

10,MB_ICONSTOP - 显示带停止图标

消息框显示禁止标记,可与前面按钮设置相关的功能选项共用

 

功能.onInit   ;这里输入要测试的代码   MessageBox MB_ICONSTOP“MB_ICONSTOP - 显示带停止图标”\     / SD IDYES IDYes label_yes label_yes:   MessageBox MB_OK“你点击了是” FunctionEnd

11,MB_USERICON - 显示安装程序的图标

消息框显示用户定义图标,可与前面按钮设置相关的功能选项共用

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第7张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_USERICON“MB_USERICON - 显示安装程序的图标”\     / SD IDYES IDYes label_yes label_yes:   MessageBox MB_OK“你点击了是” FunctionEnd

12,MB_TOPMOST - 使消息框最顶层

消息框提示窗置顶,可与前面的设置选项同时使用

 

功能.onInit   ;这里输入要测试的代码   MessageBox MB_YESNO | MB_TOPMOST“MB_TOPMOST - 使消息框最顶层”     / SD IDYES IDYES label_yes IDNO label_no label_yes:   MessageBox MB_OK“你点击了是”   转到结束 label_no:   MessageBox MB_OK“你点击了否”   转到结束 结束: FunctionEnd

13,MB_SETFOREGROUND - 设置前景

设置消息框为前景窗口

14,MB_RIGHT - 右对齐文字

设置消息框右对齐

 

功能.onInit   ;这里输入要测试的代码   MessageBox MB_YESNO | MB_RIGHT“MB_RIGHT - 右对齐文本”\     / SD IDYES IDYES label_yes IDNO label_no label_yes:   MessageBox MB_OK“你点击了是”   转到结束 label_no:   MessageBox MB_OK“你点击了否”   转到结束 结束: FunctionEnd

15,MB_RTLREADING - RTL读取顺序

设置的MessageBox阅读顺序为自右向左,该模式下易导致界面显示错乱,故不推荐使用

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解_第8张图片

功能.onInit   ;这里输入要测试的代码   MessageBox MB_YESNO | MB_RTLREADING“MB_RTLREADING - RTL读取顺序”     / SD IDYES IDYES label_yes IDNO label_no label_yes:   MessageBox MB_OK“你点击了是”   转到结束 label_no:   MessageBox MB_OK“你点击了否”   转到结束 结束: FunctionEnd

16,MB_DEFBUTTON1 - 按钮1是默认值

17,MB_DEFBUTTON2 - 按钮2是默认值

18,MB_DEFBUTTON3 - 按钮3是默认值

19,MB_DEFBUTTON4 - 按钮4是默认值

注:本文写作过程中参考了NSIS官方使用手册NSIS.chm

结束

NSIS脚本学习:弹出窗口的MessageBox的使用方法详解



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有