0
我正在构建一个需要检索安装操作系统的驱动器的磁盘卷的安装程序。我曾尝试以下代码:如何获取系统驱动器卷序列号
Function ShowDiskVolumeSerialNumber
!define GetVolumeInformation "Kernel32::GetVolumeInformation(t,t,i,*i,*i,*i,t,i) i"
System::Call '${GetVolumeInformation ("$0",,${NSIS_MAX_STRLEN},.r0,,,,${NSIS_MAX_STRLEN})'
IntFmt $0 "%08X" $0
MessageBox MB_OK $0
FunctionEnd
我通过指定所需的驱动器调用上述功能:
StrCpy $0 "C:\"
Call ShowDiskVolumeSerialNumber
上面给出的体积没有c:\
驱动的。但是,如果我的操作系统安装在d:\
或e:\
上,它将无法工作。我想要一个能够自动检测安装了操作系统的驱动器并检索其音量的功能。
其次,检索的卷号没有连字符(例如349620C1
)。我需要将检索的音量序列号作为3496-20C1
。
可能有人请给一个完整的NSIS功能时,会做两种事情即:
- 自动检测在其上安装操作系统的驱动器,并在两者之间一个连字符检索其序列号。