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

在NSIS中检索和显示磁盘卷序列号,nsis,Nsis,我正在使用NSIS(HM NISedit 2.0.3用于编辑器)构建应用程序的设置。 我要求我的一个设置使用磁盘卷序列号(十六进制格式)。我还需要在消息框中显示相同的序列号。 是否有人可以将获取磁盘卷序列号的完整脚本发送给我,并将其显示在消息框中?本页介绍如何以十六进制格式检索序列号: 因此,要执行所需操作,请在脚本中包含此函数: Function ShowDiskVolumeSerialNumber !define GetVolumeInformation "Kernel32::GetV

我正在使用NSIS(HM NISedit 2.0.3用于编辑器)构建应用程序的设置。 我要求我的一个设置使用磁盘卷序列号(十六进制格式)。我还需要在消息框中显示相同的序列号。
是否有人可以将获取磁盘卷序列号的完整脚本发送给我,并将其显示在消息框中?

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

因此,要执行所需操作,请在脚本中包含此函数:

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
显然,您可以用任何您喜欢的方式替换驱动器号,但要确保它后面有一个双反斜杠