Форум: "Основная";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];
ВнизПосоветуйте ф-ю определиня размера ОЗУ более 2гиг Найти похожие ветки
← →
Layner © (2008-01-17 09:21) [0]нигде не могу найти, ни в пакетах (AllLib например) ни по одиночке...
← →
Layner © (2008-01-17 10:01) [1]Никто ни разу не определял? :(
← →
Сергей М. © (2008-01-17 10:04) [2]Более правдивой инф-ции об объеме бортовой RAM, нежели инф-ция из BIOSа, вряд ли сыскать)
← →
KilkennyCat © (2008-01-17 10:05) [3]
> Сергей М. © (17.01.08 10:04) [2]
скорее всего. Ибо некоторые ос не видят более чем определенное количество памяти.
← →
Layner © (2008-01-17 10:15) [4]Сергей, а как из биоса подчерпнуть? Так то еще надо посмотреть кол-во свободной/занятой памяти...
← →
han_malign © (2008-01-17 10:33) [5]а GlobalMemoryStatusEx не работает?
type
TMemoryStatusEx = packed record
dwLength : DWORD;
dwMemoryLoad : DWORD;
ullTotalPhys : LONGLONG;
ullAvailPhys : LONGLONG;
ullTotalPageFile : LONGLONG;
ullAvailPageFile : LONGLONG;
ullTotalVirtual : LONGLONG;
ullAvailVirtual : LONGLONG;
ullAvailExtendedVirtual: LONGLONG;
end;
type PGlobalMemoryStatusExProc = function(var lpBuffer: TMemoryStatusEx): BOOL;stdcall;
function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx): BOOL;
var hLib: THandle;
_pgmse: PGlobalMemoryStatusExProc;
begin
hLib:=LoadLibrary("kernel32");
Result:=hLib<>0;
if(Result)then begin
_pgmse:=GetProcAddress(hLib,"GlobalMemoryStatusEx");
Result:=Assigned(_pgmse)and _pgmse(lpBuffer);
FreeLibrary(hLib);
end;
end;
function MemoryStatus: TMemoryStatusEx;
var _mstat: TMemoryStatus;
begin
fillchar(Result,sizeof(Result),0);
Result.dwLength:=sizeof(Result);
if(not GlobalMemoryStatusEx(Result))then begin
fillchar(_mstat,sizeof(_mstat),0);
_mstat.dwLength:=sizeof(_mstat);
GlobalMemoryStatus(_mstat);
fillchar(Result,sizeof(Result),0);
Result.dwLength:=sizeof(Result);
with Result do begin
dwMemoryLoad :=_mStat.dwMemoryLoad ;
ullTotalPhys :=_mStat.dwTotalPhys ;
ullAvailPhys :=_mStat.dwAvailPhys ;
ullTotalPageFile :=_mStat.dwTotalPageFile;
ullAvailPageFile :=_mStat.dwAvailPageFile;
ullTotalVirtual :=_mStat.dwTotalVirtual ;
ullAvailVirtual :=_mStat.dwAvailVirtual ;
end;
end;
end;
← →
Layner © (2008-01-17 10:42) [6]Сейчас оттестим :)))
← →
Сергей М. © (2008-01-17 10:49) [7]
> еще надо посмотреть кол-во свободной/занятой памяти
А вот этим уже заведует ОС, в БИОСе нет и не может быть такой инф-ции
← →
Layner © (2008-01-17 11:22) [8]
han_malign © (17.01.08 10:33)
Дружище, спасибо! Все кажет на ура, то что надо! Напиши на email, как нибудь по нормальному отблагодарю, очень выручил!
← →
KilkennyCat © (2008-01-17 13:10) [9]
> Все кажет на ура, то что надо!
поставь 4 гига и посмотри под хр
← →
Layner © (2008-01-17 13:38) [10]
KilkennyCat © (17.01.08 13:10)
У меня на 2003 винде 4 гига, все кажет, и отлично. А на XP нет возможности поставить более 2х :(
А что, почему в XP не кажет более 2х этот код? У меня сейчас гиг, полет нормальный.. Можно поподробнее?
← →
KilkennyCat © (2008-01-17 19:41) [11]
> Layner © (17.01.08 13:38) [10]
>
> KilkennyCat © (17.01.08 13:10)
> У меня на 2003
я не говорил 2003...
← →
han_malign © (2008-01-18 12:48) [12]
> поставь 4 гига и посмотри под хр
XP(SP2) поддерживает 64-битную GlobalMemoryStatusEx. Насколько корректно не знаю - проверить не на чем...
← →
Дмитрий Белькевич © (2008-01-20 19:38) [13]>А на XP нет возможности поставить более 2х
В XP SP2 есть ключ в boot.ini, можно до трёх
← →
Pavia © (2008-01-22 19:24) [14]Можно на XP поставить. Только ОС должна быть 64 битная. И для XP нужен патч.
← →
homm © (2008-01-22 21:20) [15]> [13] Дмитрий Белькевич © (20.01.08 19:38)
> >А на XP нет возможности поставить более 2х
>
> В XP SP2 есть ключ в boot.ini, можно до трёх
Ты не понимаешь о чем ты говоришь.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c