杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1738|回复: 0

二进制在NSIS中的应用

[复制链接]
发表于 2019-3-1 21:08:53 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. #作者:贾可

  2. !include nsDialogs.nsh

  3. !define BIT_CHECK_PROGRAMS 0x00000001
  4. !define BIT_CHECK_DESKTOP  0x00000002
  5. !define BIT_CHECK_TASKBAR  0x00000004

  6. Var Flags

  7. Name Example
  8. OutFile Example.exe

  9. XPStyle on
  10. InstallColors /windows
  11. ShowInstDetails show

  12. Page custom CustomPage.Create
  13. Page instfiles

  14. Section Install

  15. SectionEnd

  16. Function CustomPage.Create
  17.     nsDialogs::Create 1018
  18.     Pop $0

  19.     GetFunctionAddress $R0 onCheckBoxClick

  20.     ${NSD_CreateCheckBox} 0u 0u 100% 8u "Create Startmenu Shortcut"
  21.     Pop $0
  22.     nsDialogs::SetUserData $0 ${BIT_CHECK_PROGRAMS}
  23.     nsDialogs::onClick $0 $R0

  24.     IntOp $R1 $Flags & ${BIT_CHECK_PROGRAMS}
  25.     IntCmp $R1 0 +2
  26.     SendMessage $0 ${BM_CLICK} 0 0

  27.     ${NSD_CreateCheckBox} 0u 12u 100% 8u "Create Desktop Shortcut"
  28.     Pop $0
  29.     nsDialogs::SetUserData $0 ${BIT_CHECK_DESKTOP}
  30.     nsDialogs::onClick $0 $R0

  31.     IntOp $R1 $Flags & ${BIT_CHECK_DESKTOP}
  32.     IntCmp $R1 0 +2
  33.     SendMessage $0 ${BM_CLICK} 0 0

  34.     ${NSD_CreateCheckBox} 0u 24u 100% 8u "Create Taskbar Shortcut"
  35.     Pop $0
  36.     nsDialogs::SetUserData $0 ${BIT_CHECK_TASKBAR}
  37.     nsDialogs::onClick $0 $R0

  38.     IntOp $R1 $Flags & ${BIT_CHECK_TASKBAR}
  39.     IntCmp $R1 0 +2
  40.     SendMessage $0 ${BM_CLICK} 0 0

  41.     nsDialogs::Show
  42. FunctionEnd

  43. Function onCheckBoxClick
  44.     Exch $R0
  45.     Push $R1
  46.     Push $R2
  47.     SendMessage $R0 ${BM_GETCHECK} 0 0 $R1
  48.     nsDialogs::GetUserData $R0
  49.     Pop $R2
  50.     IntCmp $R1 ${BST_UNCHECKED} +3
  51.     IntOp $Flags $Flags | $R2
  52.     Goto +3
  53.     IntOp $R2 $R2 ~
  54.     IntOp $Flags $Flags & $R2
  55.     Pop $R2
  56.     Pop $R1
  57.     Pop $R0
  58. FunctionEnd

  59. Function .onInstSuccess
  60.     IntOp $R0 $Flags & ${BIT_CHECK_PROGRAMS}
  61.     IntCmp $R0 0 +2
  62.     MessageBox MB_OK|MB_ICONINFORMATION "Startmenu shortcut!"

  63.     IntOp $R0 $Flags & ${BIT_CHECK_DESKTOP}
  64.     IntCmp $R0 0 +2
  65.     MessageBox MB_OK|MB_ICONINFORMATION "Desktop shortcut!"

  66.     IntOp $R0 $Flags & ${BIT_CHECK_TASKBAR}
  67.     IntCmp $R0 0 +2
  68.     MessageBox MB_OK|MB_ICONINFORMATION "Taskbar shortcut!"
  69. FunctionEnd
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-17 20:32 , Processed in 0.127226 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表