Wenn ihr dieses in euer Programm einbaut, was zeigt denn dieses jeweils im XP/7 an?
Delphi-Quellcode:
var GMS: TMemoryStatusEx;
GMS.dwLength := SizeOf(TMemoryStatusEx);
GlobalMemoryStatusEx(GMS);
Label1.Caltion := Format('%.2n MB verfügbar', [GMS.ullAvailVirtual / 1048576]);
@Luckie: Hab hier garde nur 2 GB im System verfügbar, also was zeigt denn Folgendes an?
Code:
program Project3;
{$APPTYPE CONSOLE}
uses
Windows;
//{$SetPeFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
var
GMS: TMemoryStatusEx;
begin
GMS.dwLength := SizeOf(TMemoryStatusEx);
GlobalMemoryStatusEx(GMS);
WriteLn('used (system): ', GMS.dwMemoryLoad, ' %');
WriteLn;
WriteLn('physical memory - total: ', GMS.ullTotalPhys / 1048576 :4:2, ' MB');
WriteLn(' (system) - available: ', GMS.ullAvailPhys / 1048576 :4:2, ' MB');
WriteLn;
WriteLn('page file - total: ', GMS.ullTotalPageFile / 1048576 :4:2, ' MB');
WriteLn(' - available: ', GMS.ullAvailPageFile / 1048576 :4:2, ' MB');
WriteLn;
WriteLn('virtual memory - total: ', GMS.ullTotalVirtual / 1048576 :4:2, ' MB');
WriteLn(' (this program) - available: ', GMS.ullAvailVirtual / 1048576 :4:2, ' MB');
ReadLn;
end.
PS: Wer mehr als 4 GB in einem
Win32-Programm nutzen will, der muß erstmal Large-Address-Aware im System aktiviert haben und sollte sich dann im
MSDN mal wie
AWE-Funktionen ansehn.
@Mods: Ja, ich hab absichtlich [CODE] verwendet, wehe ihr editiert das ... bitte repariert endlich mal das Delphi-Tag.