#nsis
#nsi
Вопрос:
Я использую NSI (HM NISedit 2.0.3 для редактора) для создания настроек моего приложения. У меня есть требование, чтобы одна из моих настроек использовала серийный номер тома диска (в шестнадцатеричном формате).Мне также нужно отобразить то же самое в окне сообщения. Может кто-нибудь, пожалуйста, отправьте мне полный фрагмент сценария для получения серийного номера тома диска, отображающего его в окне сообщения?
Ответ №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 "X" $0
MessageBox MB_OK $0
FunctionEnd
и назовите это так:
StrCpy $0 "C:\"
Call ShowDiskVolumeSerialNumber
Очевидно, что вы можете заменить букву диска на любую, какую захотите, но убедитесь, что она имеет двойную обратную косую черту.