杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 473|回复: 0

NSIS 获取物理内存

[复制链接]
发表于 2022-7-25 15:15:43 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. !addplugindir .

  2.     Name Memory
  3.     OutFile Memory.exe

  4.     XPStyle on
  5.     InstallColors /windows
  6.     ShowInstDetails show
  7.     RequestExecutionLevel admin

  8.     Page instfiles

  9.     Section Install

  10.         # 获取系统已识别的总内存大小
  11.         # Windows XP、2003 通过 Windows API 只能获取到这个大小
  12.         System::Call "*(i64,i,l,l,l,l,l,l,l)i.R0"
  13.         System::Call "kernel32::GlobalMemoryStatusEx(iR0)"
  14.         System::Call "*$R0(i,i,l.R1)"
  15.         System::Free $R0

  16.         # 通过 Windows API 将数值格式化为“字节、KB、GB 单位”
  17.     !ifndef NSIS_UNICODE
  18.         System::Call "shlwapi::StrFormatByteSize64A(lR1,t.R2,i${NSIS_MAX_STRLEN})"
  19.     !else
  20.         System::Call "shlwapi::StrFormatByteSizeW(lR1,t.R2,i${NSIS_MAX_STRLEN})"
  21.     !endif
  22.         DetailPrint "已识别内存大小:$R2 ($R1)"

  23.         # 获取系统已安装的总内存大小
  24.         # 以下代码仅在 Windows Vista 或更高的系统有效
  25.         System::Call "kernel32::GetPhysicallyInstalledSystemMemory(*l.R1)"
  26.         System::Int64Op $R1 << 10
  27.         Pop $R1

  28.         # 通过 Windows API 将数值格式化为“字节、KB、GB 单位”
  29.     !ifndef NSIS_UNICODE
  30.         System::Call "shlwapi::StrFormatByteSize64A(lR1,t.R2,i${NSIS_MAX_STRLEN})"
  31.     !else
  32.         System::Call "shlwapi::StrFormatByteSizeW(lR1,t.R2,i${NSIS_MAX_STRLEN})"
  33.     !endif
  34.         DetailPrint "总安装内存大小:$R2 ($R1)"

  35.     SectionEnd
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-4-30 16:33 , Processed in 0.114436 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表