기가바이트 단위로 그냥 단순히 물리적 램용량만 알아내는 함수
 
function Mem: String
var MemStat: TMemoryStatus; 
begin 

MemStat.dwLength:=SizeOf(TMemoryStatus); 

// 구조체를 이렇게 한번 담갔다 빼면 세팅완료. 

GlobalMemoryStatus(MemStat);  

Result:=Format('%3f GB', [MemStat.dwTotalPhys/1024/1024/1024]); 

end
 
 
중요한 건 TMemoryStatus 구조체다.
 
type
  PMemoryStatus = ^TMemoryStatus;
  _MEMORYSTATUS = record
    dwLength: DWORD; // TMemoryStatus 구조체 자체의 크기. 바이트 단위(in bytes)
    dwMemoryLoad: DWORD; // 사용중인 총 물리메모리의 대략적인 퍼센테이지.
    dwTotalPhys: DWORD; // 물리메모리의 전체 크기 (in bytes)
    dwAvailPhys: DWORD; // 사용가능한 물리메모리의 크기 (in bytes)
    dwTotalPageFile: DWORD; // 페이징 된 메모리의 전체 크기 (in bytes)
    dwAvailPageFile: DWORD; // 페이징 된 메모리 중 사용가능한 크기 (in bytes)
    dwTotalVirtual: DWORD; // 가상메모리의 총 크기 (in bytes)
    dwAvailVirtual: DWORD; // 사용가능한 가상메모리의 총 크기 (in bytes)
  end;
  {$EXTERNALSYM _MEMORYSTATUS}
  TMemoryStatus = _MEMORYSTATUS;
  MEMORYSTATUS = _MEMORYSTATUS;
  {$EXTERNALSYM MEMORYSTATUS}  





Posted by bloodguy
,