最新消息:

NSIS 获取物理内存

nsis 永恒心锁 1590浏览 0评论
    !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
永恒心锁,版权所有丨如未注明,均为转载丨本网站采用BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » NSIS 获取物理内存

您必须 登录 才能发表评论!