Talk:Determining free memory using the System plugin: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Reverted edits by 91.207.9.157 to last version by Kichik)
m (Reverted edits by 91.207.6.150 to last version by Kichik)
 
(One intermediate revision by one other user not shown)
(No difference)

Latest revision as of 04:11, 11 March 2013

What baout 64 bit windows?

on 64bit The following code :



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 
  
 ; $5 => Free RAM 
 ; $4 => Total RAM 
 IntOp $R5 $5 / 1048576 ; 1048576 = 1024*1024, or MegaX 
 IntOp $R4 $4 / 1048576 ; 1048576 = 1024*1024, or MegaX 
 MessageBox MB_OK "R5: $R5   5: $5   R4: $R4   4: $4"

gives this: R5: -813 5: -852815872 R4: -256 4: -269082624

the real total memory is: 3.75GB of RAM

How do I make this work for a 64 bit system? if pissible hoe to make one coade to work for both 64bit and 32bit?

Thanks!



The forum thread told you to use the system plugin and its Int64Op