Nsis 添加到中止页面的链接
作为后续操作,我试图在发出Abort命令后添加链接,但由于某些原因,它没有出现,在Spy++中查看时没有任何痕迹 这样做的目的是在进度条上方添加链接,但宏无法正常工作。是否有我丢失的原因?是否可以在调用Abort后添加该链接?我在某个地方读到过Abort命令可以有不同的效果,所以我猜这就是其中之一 我已经尽力使这个示例脚本尽可能简洁,并将非常感谢任何帮助,因为我仍在学习NSISNsis 添加到中止页面的链接,nsis,Nsis,作为后续操作,我试图在发出Abort命令后添加链接,但由于某些原因,它没有出现,在Spy++中查看时没有任何痕迹 这样做的目的是在进度条上方添加链接,但宏无法正常工作。是否有我丢失的原因?是否可以在调用Abort后添加该链接?我在某个地方读到过Abort命令可以有不同的效果,所以我猜这就是其中之一 我已经尽力使这个示例脚本尽可能简洁,并将非常感谢任何帮助,因为我仍在学习NSIS !include "MUI2.nsh" ;-------------------------------- ;Gen
!include "MUI2.nsh"
;--------------------------------
;General
ShowInstDetails hide
SetCompressor /SOLID lzma
;Request application privileges for Windows Vista
RequestExecutionLevel user
;--------------------------------
;Interface Configuration
!define MUI_ABORTWARNING
!define MANUAL_DOWNLOAD_TEXT "Automatic download not working? Click here to download manually."
;--------------------------------
;Macros
!macro AddDownloadLink yCoord
FindWindow $0 "#32770" "" $HWNDPARENT ; Find the inner dialog
System::Call 'USER32::CreateWindowEx(i0, t "STATIC", t "${MANUAL_DOWNLOAD_TEXT}", i${WS_CHILD}|${WS_VISIBLE}|${SS_NOTIFY}, i 1, i ${yCoord}, i 500, i 50, p $0, i 0x666, p 0, p 0)p.s'
Pop $0
SetCtlColors $0 0000ff transparent
CreateFont $1 "$(^Font)" "$(^FontSize)" "400" /UNDERLINE
SendMessage $0 ${WM_SETFONT} $1 1
GetFunctionAddress $1 fnLinkClicked
ButtonEvent::AddEventHandler 0x666 $1
!macroend
;--------------------------------
;Pages
!insertmacro MUI_PAGE_INSTFILES
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Installer Sections
Section
Var /global Filename
StrCpy $Filename "test100Mb.db"
Var /global DownloadUrl
StrCpy $DownloadUrl "http://speedtest.ftp.otenet.gr/files/$Filename"
!insertmacro AddDownloadLink 70
inetc::get /caption "Downloading package" $DownloadUrl "$Filename" /end
Pop $R0 ;Get the return value
StrCmp $R0 "OK" 0 dlfailed
Goto quit
dlfailed:
DetailPrint "Download failed: $R0 $DownloadUrl"
SetDetailsView show
Abort
!insertmacro AddDownloadLink 1
quit:
Quit
SectionEnd
Function fnLinkClicked
ExecShell "open" "$DownloadUrl"
FunctionEnd
Abort
停止执行节代码,在调用Abort
之前,必须执行任何需要执行的操作
在节中添加控件可能会有问题,因为它在不同的线程上执行,并且窗口绑定到创建它们的线程。如果您需要窗口比安装线程停留的时间更长,您可以在instfiles页面的show callback中将其创建为一个隐藏窗口,并在需要显示窗口时在部分中调用
ShowWindow
。谢谢您的建议,@anders!