NSIS脚本学习:弹出窗口的MessageBox的使用方法详解 | 您所在的位置:网站首页 › toastrjs便捷消息提示弹框使用方法详解 › NSIS脚本学习:弹出窗口的MessageBox的使用方法详解 |
转载 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和取消按钮 消息框显示确定和取消两个按钮 功能.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“你点击了取消” 转到结束 结束: FunctionEnd3,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“你点击了忽略” 转到结束 结束: FunctionEnd4,MB_RETRYCANCEL - 显示重试和取消按钮 消息框显示重试和取消两个按钮 功能.onInit ;这里输入要测试的代码 MessageBox MB_RETRYCANCEL“MB_RETRYCANCEL - 显示重试和取消按钮”\ / SD IDRETRY IDRETRY label_retry IDCANCEL label_cancel label_retry: MessageBox MB_OK“你点击了重试” 转到结束 label_cancel: MessageBox MB_OK“你点击了取消” 转到结束 结束: FunctionEnd5,MB_YESNO - 显示是和否按钮 消息框显示是和否两个按钮 功能.onInit ;这里输入要测试的代码 MessageBox MB_YESNO“MB_YESNO - 显示是和否按钮”\ / SD IDYES IDYES label_yes IDNO label_no label_yes: MessageBox MB_OK“你点击了是” 转到结束 label_no: MessageBox MB_OK“你点击了否” 转到结束 结束: FunctionEnd6,MB_YESNOCANCEL - 显示是,否,取消按钮 消息框显示是,否和取消三个按钮 功能.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“你点击了取消” 转到结束 结束: FunctionEnd7,MB_ICONEXCLAMATION - 显示带感叹号图标 消息框显示警告标记,可与前面按钮设置相关的功能选项共用 功能.onInit ;这里输入要测试的代码 MessageBox MB_ICONEXCLAMATION“MB_ICONEXCLAMATION - 显示带感叹号图标”\ / SD IDYES IDYes label_yes label_yes: MessageBox MB_OK“你点击了是” FunctionEnd 8,MB_ICONINFORMATION - 显示信息图标 MessageBox的显示信息标记,可与前面按钮设置相关的功能选项共用 功能.onInit ;这里输入要测试的代码 MessageBox MB_ICONINFORMATION“MB_ICONINFORMATION - 显示信息图标” / SD IDYES IDYes label_yes label_yes: MessageBox MB_OK“你点击了是” FunctionEnd9,MB_ICONQUESTION - 显示问号图标 消息框显示询问标记,可与前面按钮设置相关的功能选项共用 功能.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“你点击了否” 转到结束 结束: FunctionEnd10,MB_ICONSTOP - 显示带停止图标 消息框显示禁止标记,可与前面按钮设置相关的功能选项共用 功能.onInit ;这里输入要测试的代码 MessageBox MB_ICONSTOP“MB_ICONSTOP - 显示带停止图标”\ / SD IDYES IDYes label_yes label_yes: MessageBox MB_OK“你点击了是” FunctionEnd 11,MB_USERICON - 显示安装程序的图标 消息框显示用户定义图标,可与前面按钮设置相关的功能选项共用 功能.onInit ;这里输入要测试的代码 MessageBox MB_USERICON“MB_USERICON - 显示安装程序的图标”\ / SD IDYES IDYes label_yes label_yes: MessageBox MB_OK“你点击了是” FunctionEnd12,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阅读顺序为自右向左,该模式下易导致界面显示错乱,故不推荐使用 功能.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“你点击了否” 转到结束 结束: FunctionEnd16,MB_DEFBUTTON1 - 按钮1是默认值 17,MB_DEFBUTTON2 - 按钮2是默认值 18,MB_DEFBUTTON3 - 按钮3是默认值 19,MB_DEFBUTTON4 - 按钮4是默认值 注:本文写作过程中参考了NSIS官方使用手册NSIS.chm 结束 NSIS脚本学习:弹出窗口的MessageBox的使用方法详解 |
CopyRight 2018-2019 实验室设备网 版权所有 |