Форум программистов, компьютерный форум CyberForum.ru

Delphi и WinAPI

Войти
Регистрация
Восстановить пароль
 
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,532
#1

Как определить точный размер оперативной памяти? - Delphi WinAPI

04.04.2016, 17:20. Просмотров 512. Ответов 7
Метки нет (Все метки)

Приветствую.
Есть функция:
Delphi
1
2
3
4
5
6
7
8
9
10
function GetMem: String;
var
MyMem: TMemoryStatus;
begin
MyMem.dwLength:=SizeOf(MyMem);
GlobalMemoryStatus(MyMem);
with MyMem do begin
Result:= IntToStr(dwTotalPhys);
end;
end;
возвращает 4294967295, хотя у меня 16 гигов стоит. Подскажите функцию которая вернет правильное значение.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2016, 17:20     Как определить точный размер оперативной памяти?
Посмотрите здесь:

Размер свободного места на диске Delphi WinAPI
Как на Delphi определить параметры ЖД? Delphi WinAPI
Delphi WinAPI Скопировать файл из памяти на диск
Delphi WinAPI Поиск и изменение адреса памяти
Виртуальная клавиатура, как определить HWND Delphi WinAPI
Delphi WinAPI как программно определить путь C:\Program Files
Delphi WinAPI Рисование в буфере памяти
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FIL
Модератор
3366 / 2504 / 476
Регистрация: 19.09.2012
Сообщений: 7,818
04.04.2016, 18:43     Как определить точный размер оперативной памяти? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
GlobalMemoryStatusEx()
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,532
04.04.2016, 18:55  [ТС]     Как определить точный размер оперативной памяти? #3
похоже это для дельфей не ниже 7?
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
22462 / 14639 / 4171
Регистрация: 22.10.2011
Сообщений: 25,937
Записей в блоге: 4
04.04.2016, 18:56     Как определить точный размер оперативной памяти? #4
При чем тут версия Дельфи? Это WinAPI
pixel
17 / 10 / 1
Регистрация: 19.05.2009
Сообщений: 1,532
04.04.2016, 19:37  [ТС]     Как определить точный размер оперативной памяти? #5
сорри, нашел пример, в котором было DWORDLONG = UInt64 - из за этого и спросил. нашел другой пример, все заработало. спасибо.

Добавлено через 27 минут
volvo, подскажите еще один момент. В свойствах компа пишет 16.0 Гб, а в проге выдает 15,98 Гб
вот строка
Delphi
1
Memo1.Lines.Add(Format('%.2f ГБ',[MemoryStatus.ullTotalPhys/(1024*1024*1024)]));
где правда?
NotBeginner
148 / 148 / 19
Регистрация: 22.02.2013
Сообщений: 2,711
Записей в блоге: 2
27.05.2016, 15:22     Как определить точный размер оперативной памяти? #6
pixel, а если делить на 1000 вместо 1024
похоже на маркетинговый ход)
djljktq_81
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 6
09.06.2016, 06:29     Как определить точный размер оперативной памяти? #7
Можно попробовать сравнить с выводом какой-нибудь специализированной утилиты.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2016, 07:06     Как определить точный размер оперативной памяти?
Еще ссылки по теме:

Delphi WinAPI Как определить размер и атрибуты файла?
Как правильно прочитать строку памяти процесса? Delphi WinAPI
Delphi WinAPI Копирование/перемещение памяти
Как задать размер стороннего окна при открытии и расположение от формы (справа/слева)? Delphi WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Postscripter
5 / 5 / 1
Регистрация: 04.07.2012
Сообщений: 150
14.06.2016, 07:06     Как определить точный размер оперативной памяти? #8

Не по теме:

Delphi
1
2
3
4
5
6
7
8
true
 repeat
  GetMem(p, 1024);
  inc(cnt);
 until false;
expect 
 showmessage('У вас было' + inttostr(cnt) + ' килобайт памяти');
end


J
Yandex
Объявления
14.06.2016, 07:06     Как определить точный размер оперативной памяти?
Ответ Создать тему
Опции темы

Текущее время: 15:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru