!addplugindir .
Name Memory
OutFile Memory.exe
XPStyle on
InstallColors /windows
ShowInstDetails show
RequestExecutionLevel admin
Page instfiles
Section Install
# 获取系统已识别的总内存大小
# Windows XP、2003 通过 Windows API 只能获取到这个大小
System::Call "*(i64,i,l,l,l,l,l,l,l)i.R0"
System::Call "kernel32::GlobalMemoryStatusEx(iR0)"
System::Call "*$R0(i,i,l.R1)"
System::Free $R0
# 通过 Windows API 将数值格式化为“字节、KB、GB 单位”
!ifndef NSIS_UNICODE
System::Call "shlwapi::StrFormatByteSize64A(lR1,t.R2,i${NSIS_MAX_STRLEN})"
!else
System::Call "shlwapi::StrFormatByteSizeW(lR1,t.R2,i${NSIS_MAX_STRLEN})"
!endif
DetailPrint "已识别内存大小:$R2 ($R1)"
# 获取系统已安装的总内存大小
# 以下代码仅在 Windows Vista 或更高的系统有效
System::Call "kernel32::GetPhysicallyInstalledSystemMemory(*l.R1)"
System::Int64Op $R1 << 10
Pop $R1
# 通过 Windows API 将数值格式化为“字节、KB、GB 单位”
!ifndef NSIS_UNICODE
System::Call "shlwapi::StrFormatByteSize64A(lR1,t.R2,i${NSIS_MAX_STRLEN})"
!else
System::Call "shlwapi::StrFormatByteSizeW(lR1,t.R2,i${NSIS_MAX_STRLEN})"
!endif
DetailPrint "总安装内存大小:$R2 ($R1)"
SectionEnd
© 版权声明
THE END
暂无评论内容