Determining free memory using the System plugin: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
Line 6: Line 6:
== The Function ==
== The Function ==
<highlight-nsis>
<highlight-nsis>
System::Alloc 31
System::Alloc 32
Pop $1
Pop $1
System::Call "Kernel32::GlobalMemoryStatus(i) v (r1)"
System::Call "Kernel32::GlobalMemoryStatus(i) v (r1)"

Revision as of 10:37, 3 February 2009

Author: sunjammer (talk, contrib)


Description

KiCHiK came up with this NSIS code to check free RAM using the System plugin (original forum posting)

The Function

System::Alloc 32
Pop $1
System::Call "Kernel32::GlobalMemoryStatus(i) v (r1)"
System::Call "*$1(&i4 .r2, &i4 .r3, &i4 .r4, &i4 .r5, \
                  &i4 .r6, &i4.r7, &i4 .r8, &i4 .r9)"
System::Free $1
DetailPrint "Structure size (useless): $2 Bytes"
DetailPrint "Memory load: $3%"
DetailPrint "Total physical memory: $4 Bytes"
DetailPrint "Free physical memory: $5 Bytes"
DetailPrint "Total page file: $6 Bytes"
DetailPrint "Free page file: $7 Bytes"
DetailPrint "Total virtual: $8 Bytes"
DetailPrint "Free virtual: $9 Bytes"