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功能時,會做兩種事情即:
- 自動檢測在其上安裝操作系統的驅動器,並在兩者之間一個連字符檢索其序列號。