기가바이트 단위로 그냥 단순히 물리적 램용량만 알아내는 함수
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}
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}
'Delphi' 카테고리의 다른 글
[Delphi] 함수의 이름으로 메소드 호출하기 (0) | 2009.04.18 |
---|---|
[Delphi] CPU 정보 알아내기 (0) | 2009.04.18 |
[Delphi] 그래픽카드의 이름을 반환하는 함수 (0) | 2009.04.18 |
[BDS] 찾기 기능 Ctrl + Shift + Enter (0) | 2009.04.18 |
[Delphi] 절대 죽지 않는 불사신 어플리케이션 제작법 (0) | 2009.04.18 |