杉宫竹苑工作室

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

115浏览器例子

[复制链接]
发表于 2019-11-24 23:08:11 | 显示全部楼层 |阅读模式

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

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

x

  1. ;ExecShell taskbarunpin "$DESKTOP\${PRODUCT_NAME}.lnk"是删除任务栏图标

  2. ;安装包 解压空白
  3. !system '>blank set/p=MSCF<nul' !packhdr="" temp.dat="" 'cmd="" c="" copy="" b="" +blank&&del="" blank'=""
  4. ${OrIf} $0 < 0
  5. System::Int64Op $0 / 1024
  6. Pop $0
  7. StrCpy $1 "KB"
  8. ${If} $0 > 1024
  9. ${OrIf} $0 < 0
  10. System::Int64Op $0 / 1024
  11. Pop $0
  12. StrCpy $1 "MB"
  13. ${If} $0 > 1024
  14. ${OrIf} $0 < 0
  15. System::Int64Op $0 / 1024
  16. Pop $0
  17. StrCpy $1 "GB"
  18. ${EndIf}
  19. ${EndIf}
  20. ${EndIf}

  21. StrCpy $FreeSpaceSize "$0$1"
  22. FunctionEnd

  23. Function FreshInstallDataStatusFunc
  24. ;更新磁盘空间文本显示
  25. nsSkinEngine::FindControl "InstallTab_FreeSpace"
  26. Pop $0
  27. ${If} $0 == "-1"
  28. MessageBox MB_OK "Do not have InstallTab_FreeSpace"
  29. ${Else}
  30. nsSkinEngine::SetControlData "InstallTab_FreeSpace" $FreeSpaceSize "text"
  31. ${EndIf}
  32. ;路径是否合法(合法则不为0Bytes)
  33. ${If} $FreeSpaceSize == "0Bytes"
  34. nsSkinEngine::SetControlData "InstallTab_InstallBtn" "false" "enable"
  35. ${Else}
  36. nsSkinEngine::SetControlData "InstallTab_InstallBtn" "true" "enable"
  37. ${EndIf}
  38. FunctionEnd

  39. Function OnTextChangeFunc
  40. ; 改变可用磁盘空间大小
  41. nsSkinEngine::GetControlData InstallTab_InstallFilePath "text"
  42. Pop $0
  43. ;MessageBox MB_OK $0
  44. StrCpy $INSTDIR $0

  45. ;重新获取磁盘空间
  46. Call UpdateFreeSpace
  47. Call FreshInstallDataStatusFunc
  48. FunctionEnd

  49. Function OnInstallPathBrownBtnFunc
  50. nsSkinEngine::GetControlData "InstallTab_InstallFilePath" "text" ;
  51. Pop $installPath
  52. nsSkinEngine::SelectFolderDialog "请选择文件夹" $installPath
  53. Pop $installPath

  54. StrCpy $0 $installPath
  55. ${If} $0 == "-1"
  56. ${Else}
  57. StrCpy $INSTDIR "$installPath\${PRODUCT_NAME_EN}"
  58. ;设置安装路径编辑框文本
  59. nsSkinEngine::FindControl "InstallTab_InstallFilePath"
  60. Pop $0
  61. ${If} $0 == "-1"
  62. MessageBox MB_OK "Do not have Wizard_InstallPathBtn4Page2 button"
  63. ${Else}
  64. ;nsSkinEngine::SetText2Control "InstallTab_InstallFilePath" $installPath
  65. StrCpy $installPath $INSTDIR
  66. nsSkinEngine::SetControlData "InstallTab_InstallFilePath" $installPath "text"
  67. ${EndIf}
  68. ${EndIf}

  69. ;重新获取磁盘空间
  70. Call UpdateFreeSpace
  71. Call FreshInstallDataStatusFunc
  72. FunctionEnd

  73. Function OnCheckChanged
  74. nsSkinEngine::GetControlData "CustomOptionsCheckBox" "Checked" ;
  75. Pop $0
  76. ${If} $0 == "1"
  77. nsSkinEngine::NSISResize "445" "608"
  78. nsSkinEngine::SetControlData "customVer" "true" "visible"
  79. ${Else}
  80. nsSkinEngine::NSISResize "445" "462"
  81. nsSkinEngine::SetControlData "customVer" "false" "visible"
  82. ${EndIf}
  83. FunctionEnd

  84. Function acceptCheckChangedFunc
  85. nsSkinEngine::GetControlData "acceptCheckBox" "Checked" ;
  86. Pop $0
  87. ${If} $0 == "1"
  88. nsSkinEngine::SetControlData "InstallBtn" "true" "enable"
  89. ${Else}
  90. nsSkinEngine::SetControlData "InstallBtn" "false" "enable"
  91. ${EndIf}
  92. FunctionEnd

  93. Function acceptPageFunc
  94. nsSkinEngine::SetControlData "windowbk" "1" "TabCurrentIndexInt"
  95. nsSkinEngine::ShowLicense "acceptInfo" "license.txt"
  96. FunctionEnd

  97. Function acceptOkFunc
  98. nsSkinEngine::SetControlData "windowbk" "0" "TabCurrentIndexInt"
  99. FunctionEnd

  100. Function InstallPageFunc
  101. nsSkinEngine::SetControlData "InstallTab_sysCloseBtn" "false" "enable"
  102. nsSkinEngine::NSISResize "445" "462"
  103. nsSkinEngine::SetControlData "customVer" "false" "visible"
  104. Call OnNextBtnFunc
  105. ;设置进度条
  106. nsSkinEngine::SetControlData "CompleteTab_RunAppCheckBox" "true" "Checked" ;默认勾选运行程序
  107. nsSkinEngine::FindControl "InstallProgressBar"
  108. Pop $0
  109. ${If} $0 == "-1"
  110. MessageBox MB_OK "Do not have InstallProgressBar"
  111. ${Else}
  112. nsSkinEngine::SetControlData "InstallProgressBar" "0" "ProgressInt"
  113. nsSkinEngine::SetControlData "progressText" "0%" "text"
  114. nsSkinEngine::NSISStopMsgLoop
  115. ${EndIf}
  116. FunctionEnd

  117. Function InstallShow
  118. nsSkinEngine::FindControl "InstallProgressBar"
  119. Pop $0
  120. ${If} $0 == "-1"
  121. MessageBox MB_OK "Do not have InstallProgressBar"
  122. ${Else}
  123. nsSkinEngine::NSISBindingProgress "InstallProgressBar" "progressText"
  124. ${EndIf}
  125. FunctionEnd

  126. Section InstallFiles
  127. SetOutPath "$INSTDIR"
  128. SetOverwrite ifnewer
  129. File /r "bin\*.*"
  130. SectionEnd

  131. Section RegistKeys
  132. WriteUninstaller "$INSTDIR\uninst.exe"
  133. WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\${MAIN_APP_NAME}"
  134. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  135. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  136. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\${MAIN_APP_NAME},0"
  137. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  138. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  139. WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  140. SectionEnd

  141. Section CreateShorts
  142. WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
  143. SetShellVarContext all
  144. ;创建开始菜单快捷方式
  145. CreateDirectory "$SMPROGRAMS\Google Translate"
  146. CreateShortCut "$SMPROGRAMS\Google Translate\${PRODUCT_NAME}.lnk" "$INSTDIR\${MAIN_APP_NAME}"
  147. CreateShortCut "$SMPROGRAMS\Google Translate\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
  148. CreateShortCut "$SMPROGRAMS\Google Translate\Uninstall.lnk" "$INSTDIR\uninst.exe"
  149. SetOverwrite ifnewer
  150. nsSkinEngine::GetControlData "deskShortCheckBox" "Checked" ;
  151. Pop $0
  152. ${If} $0 == "1"
  153. ;创建桌面快捷方式
  154. CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${MAIN_APP_NAME}"
  155. ${EndIf}

  156. /* CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${MAIN_APP_NAME}"
  157. System::Call 'shell32.dll::ShellExecute(i 0, t "taskbarpin", t "$QUICKLAUNCH\${PRODUCT_NAME}.lnk", i 0, i 0, i 0) i .r1 ?e' */
  158. Call RefreshShellIcons
  159. SectionEnd

  160. Section Finish
  161. nsSkinEngine::SetControlData "InstallTab_sysCloseBtn" "true" "enable"
  162. nsSkinEngine::GetControlData "2345CheckBox" "Checked" ;
  163. Pop $0
  164. ${If} $0 == "1"
  165. ;设置浏览器首页
  166. WriteRegStr HKCU "Software\Microsoft\Internet Explorer\Main" "Start Page" "${PRODUCT_2345WEB_SITE}"
  167. ${EndIf}
  168. SectionEnd

  169. Function OnCompleteBtnFunc
  170. nsSkinEngine::HideNSISSkinEngine
  171. nsSkinEngine::StopAnimationBkControl
  172. nsSkinEngine::GetControlData "autoCheckBox" "Checked" ;
  173. Pop $0
  174. ${If} $0 == "1"
  175. WriteRegStr HKCU "${PRODUCT_AUTORUN_KEY}" "${PRODUCT_NAME}" "$INSTDIR\${MAIN_APP_NAME} -mini"
  176. ${EndIf}

  177. Exec '"$INSTDIR\${MAIN_APP_NAME}"'
  178. nsSkinEngine::ExitNSISSkinEngine "false"
  179. FunctionEnd
  180. Function un.accept
  181. nsSkinEngine::NSISSendMessage $Dialog WM_NSISOPENURL "http://www.yhxs3344.net/";
  182. FunctionEnd
  183. ;-----------------------------------------------------------------------------------------------------------------------------

  184. Function un.onInit
  185. ;创建互斥防止重复运行
  186. System::Call 'kernel32::CreateMutexA(i 0, i 0, t "aceuiUnInstall") i .r1 ?e'
  187. Pop $R0
  188. StrCmp $R0 0 +3
  189. MessageBox MB_OK|MB_ICONEXCLAMATION "有一个 115浏览器 卸载向导已经运行!"
  190. Abort

  191. SetOutPath "${UNINSTALL_DIR}"
  192. File /r /x *.db ".\resouce\115Browser\*.*"

  193. KillProcDLL::KillProc "${MAIN_APP_NAME}" ;强制结束进程
  194. FunctionEnd

  195. Function un.UninstallProgress
  196. nsSkinEngine::InitNSISSkinEngine /NOUNLOAD "${UNINSTALL_DIR}" "UninstallPackages.xml" "WizardTab" "false" "115浏览器" "7B4D2AD97EC46776D7504B1F501B17483E5EFD52B3BA9E8BE9D6401E4F742E19B822CC7DDF6FC224A5D8AAFB9FFC899B" "app.ico" "true"
  197. Pop $Dialog
  198. ;初始化MessageBox窗口
  199. nsSkinEngine::InitNSISMessageBox "MessageBox.xml" "TitleLab" "TextLab" "CloseBtn" "YESBtn" "NOBtn"
  200. Pop $MessageBoxHandle

  201. ;关闭按钮绑定函数
  202. nsSkinEngine::FindControl "sysCloseBtn"
  203. Pop $0
  204. ${If} $0 == "-1"
  205. MessageBox MB_OK "Do not have sysCloseBtn"
  206. ${Else}
  207. GetFunctionAddress $0 un.OnUnInstallCancelFunc
  208. nsSkinEngine::OnControlBindNSISScript "sysCloseBtn" $0
  209. ${EndIf}

  210. ;取消按钮绑定函数
  211. nsSkinEngine::FindControl "cancelUninstallBtn"
  212. Pop $0
  213. ${If} $0 == "-1"
  214. MessageBox MB_OK "Do not have cancelUninstallBtn"
  215. ${Else}
  216. GetFunctionAddress $0 un.OnUnInstallCancelFunc
  217. nsSkinEngine::OnControlBindNSISScript "cancelUninstallBtn" $0
  218. ${EndIf}

  219. ;残忍卸载 okUninstallBtn
  220. nsSkinEngine::FindControl "okUninstallBtn"
  221. Pop $0
  222. ${If} $0 == "-1"
  223. MessageBox MB_OK "Do not have okUninstallBtn"
  224. ${Else}
  225. GetFunctionAddress $0 un.UnInstallPageFunc
  226. nsSkinEngine::OnControlBindNSISScript "okUninstallBtn" $0
  227. ${EndIf}

  228. ;卸载完成 completeBtn
  229. nsSkinEngine::FindControl "completeBtn"
  230. Pop $0
  231. ${If} $0 == "-1"
  232. MessageBox MB_OK "Do not have completeBtn"
  233. ${Else}
  234. GetFunctionAddress $0 un.OnCompleteBtnFunc
  235. nsSkinEngine::OnControlBindNSISScript "completeBtn" $0
  236. ${EndIf}

  237. ;--------------------------------------窗体显示-----------------------------------
  238. nsSkinEngine::RunNSISSkinEngine
  239. FunctionEnd

  240. Function un.OnUnInstallCancelFunc
  241. nsSkinEngine::ExitNSISSkinEngine
  242. FunctionEnd

  243. Function un.OnNextBtnFunc
  244. nsSkinEngine::NSISSendMessage $Dialog WM_NSISNEXT
  245. FunctionEnd

  246. Function un.UnInstallPageFunc
  247. Call un.OnNextBtnFunc
  248. nsSkinEngine::NSISStopMsgLoop
  249. FunctionEnd

  250. Function un.UninstallNow
  251. nsSkinEngine::FindControl "UnInstallProgressBar"
  252. Pop $0
  253. ${If} $0 == "-1"
  254. MessageBox MB_OK "Do not have UnInstallProgressBar"
  255. ${Else}
  256. nsSkinEngine::NSISBindingProgress "UnInstallProgressBar" "progressText"
  257. ${EndIf}
  258. FunctionEnd

  259. Section "Uninstall"
  260. # 设置为当前用户
  261. SetShellVarContext current
  262. # 设置为所有用户
  263. SetShellVarContext all

  264. Delete "$SMPROGRAMS\Google Translate\*.lnk"
  265. Delete "$SMPROGRAMS\Google Translate\Uninstall.lnk"
  266. Delete "$SMPROGRAMS\Google Translate\Website.lnk"
  267. Delete "$SMPROGRAMS\Google Translate\${PRODUCT_NAME}.lnk"
  268. Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
  269. RMDir /r /REBOOTOK "$SMPROGRAMS\Google Translate"
  270. RMDir /r /REBOOTOK "$INSTDIR"

  271. DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  272. DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  273. DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Google Translate"
  274. DeleteRegValue HKCU "${PRODUCT_AUTORUN_KEY}" "${PRODUCT_NAME}"

  275. SectionEnd

  276. Function un.OnCompleteBtnFunc
  277. nsSkinEngine::HideNSISSkinEngine
  278. ;Call un.SendStatistics
  279. ;Call un.DeleteRegKey ;发送完统计再调用删除key,因为发送可能需要某些键值
  280. nsSkinEngine::ExitNSISSkinEngine
  281. FunctionEnd

  282. ;刷新关联图标
  283. Function RefreshShellIcons
  284. System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
  285. (${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
  286. FunctionEnd

  287. Function .onInstSuccess
  288. FunctionEnd

复制代码


回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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