0
我有要求將zip文件捆綁到我的安裝程序。我需要nsis代碼,以便它檢查installdir上的可用空間並將其複製到變量中。如何檢查安裝目錄下的可用空間?
我有要求將zip文件捆綁到我的安裝程序。我需要nsis代碼,以便它檢查installdir上的可用空間並將其複製到變量中。如何檢查安裝目錄下的可用空間?
NSIS有一個section屬性可以幫助你做到這一點:AddSize。
如果你真的需要一個變量量必須使用系統插件:
System::Call 'kernel32::GetDiskFreeSpaceEx(t"$instdir",*l.r1,*l,*l)'
DetailPrint $1
,或者如果你需要的Win9x/NT4支持:
!include LogicLib.nsh
Function GetDiskFree
Exch $0
Push $1
System::Call 'kernel32::GetDiskFreeSpaceEx(tr0,*l0s,*l,*l)i.r1'
${If} $1 < 1
Exch $2 ;Throw away result from Ex
System::Call 'kernel32::SetCurrentDirectory(tr0)'
System::Call 'kernel32::GetDiskFreeSpace(i0,*i0r1,*i0r0,*i0r2,*i)'
System::Call 'kernel32::SetCurrentDirectory(to)'
IntOp $1 $1 * $0
System::Int64Op $1 * $2
Exch
Pop $2
${EndIf}
Exch 2
Pop $0
Pop $1
FunctionEnd
Section
Push $instdir
Call GetDiskFree
Pop $0
System::Int64Op $0/1024 ;to kb
Pop $1
DetailPrint "$1 KiB ($0)"
SectionEnd
安德斯,謝謝您cooperatipon ..你真棒! – Prakash