在NSIS中检索并显示磁盘卷序列号

时间:2011-10-14 07:22:53

标签: nsis

我正在使用NSIS(HM NISedit 2.0.3 for editor)来构建我的应用程序的设置。  我要求我的一个设置使用磁盘卷序列号(十六进制格式)。我还需要在消息框中显示相同的内容。  有人可以给我发一个完整的脚本来获取磁盘卷序列号在消息框中显示吗?

1 个答案:

答案 0 :(得分:1)

本页介绍如何以十六进制格式检索序列号:

http://nsis.sourceforge.net/Get_Disk_Volume_Serial_Number

所以你需要做的就是在你的脚本中包含这个功能:

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

显然你可以用你喜欢的任何一个替换驱动器号,但要确保它有一个双尾反斜杠。