Получение и отображение серийного номера тома диска в NSIS - PullRequest
0 голосов
/ 14 октября 2011

Я использую NSIS (HM NISedit 2.0.3 для редактора) для создания настроек моего приложения.У меня есть требование для одной из моих установок использовать серийный номер тома диска (в шестнадцатеричном формате). Мне также нужно отобразить его в окне сообщения.Может кто-нибудь выложить мне полный скрипт для получения серийного номера тома диска, отображающего его в окне сообщения?

1 Ответ

1 голос
/ 14 октября 2011

На этой странице описано, как получить серийный номер в шестнадцатеричном формате:

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

Очевидно, что вы можете заменить букву диска на любую, что вам нравится, но убедитесь, что у нее двойной обратный слеш.

...