原文 NSIS:获取硬盘中容量最大的分区盘符

我们在安装一些在线视频软件比如迅雷看看时,会发现他们的安装程序会自动判断当前系统中容量最大的分区,以便在其中创建数据缓冲下载的文件夹,这种功能如果实现呢,下面我们用NSIS来获取一下硬盘中容量最大的分区盘符。

01!include "FileFunc.nsh"
02!include "LogicLib.nsh"
03 
04OutFile "Demo.exe"
05SilentInstall silent
06 
07Section
08  ;查找所有硬盘驱动器(HDD)
09  ${GetDrives} "HDD" "FindHDD"
10  MessageBox MB_OK "最大可用空间驱动器盘符:$R2"
11SectionEnd
12 
13Function "FindHDD"
14  ;获取查找到的驱动器盘符($9)可用空间(/D=F)单位兆(/S=M)
15  ${DriveSpace} $9 "/D=F /S=M" $R0
16  ${If} $R0 > $R1
17    StrCpy $R1 $R0
18    StrCpy $R2 $9
19  ${EndIf}
20  Push $0
21FunctionEnd
04-25 00:27