Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.06.2008, 07:53
GrayCat GrayCat вне форума
Прохожий
 
Регистрация: 28.06.2008
Сообщения: 3
Репутация: 10
По умолчанию Определение свободного места в файле подкачки

Здравствуйте, уважаемые мастера Delphi.

Есть такая проблема:
Нужно определить размер и свободное место в файле подкачки Windows в WinXP SP2.

В нескольких местах в интернете я нашёл один и тот же код типа этого:

var
Status : TMemoryStatus;
begin
Status.dwLength := sizeof( TMemoryStatus );
GlobalMemoryStatus( Status );

{ Status.dwTotalPageFile: Объём страничного файла в байтах. }
{ Status.dwAvailPageFile: Свободного места в страничном файле. }

label11.Caption := ' Всего: ' + IntToStr(Status.dwTotalPageFile div 1024417) + ' Мб';
label12.Caption := ' Свободно: ' + IntToStr(Status.dwAvailPageFile div 1024417) + ' Мб';

Однако, он работает неверно, то есть показывает не размер и свободное место в файле подкачки Windows, а размер физической памяти + размер файла подкачки, причём, если отнять от получаемого этим кодом размера размер физической памяти, то полученный результат будет отличаться от фактического размера файла подкачки более чем на 100 Мб.

Нет ли другого способа получить вышеуказанные данные?
Ответить с цитированием
  #2  
Старый 01.07.2008, 15:20
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Восклицание

тебя кто учил округлять на началах функции, считай байтами, а потом только на выводе округляй
__________________
Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей
Ответить с цитированием
  #3  
Старый 01.07.2008, 17:15
GrayCat GrayCat вне форума
Прохожий
 
Регистрация: 28.06.2008
Сообщения: 3
Репутация: 10
По умолчанию

Во первых, речь не об этом, а во вторых, код не мой, я его взял с интернета, так что претензии не ко мне.
Ответить с цитированием
  #4  
Старый 03.07.2008, 12:36
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

А Эти данные всегда буду отличаться от того, что есть на самом деле, поскольку файл подкачки на 100-200 Мб больше чем значение возвращаемое функцией. Это позиция безопасности. Вдруг надо свалить данные в своп, а места на диске нет?
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #5  
Старый 03.07.2008, 17:10
GrayCat GrayCat вне форума
Прохожий
 
Регистрация: 28.06.2008
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Thrasher
А Эти данные всегда буду отличаться от того, что есть на самом деле, поскольку файл подкачки на 100-200 Мб больше чем значение возвращаемое функцией. Это позиция безопасности. Вдруг надо свалить данные в своп, а места на диске нет?

Да? Тогда почему у меня файл подкачки имеет размер 1 Гб, а функция возвращает размер примерно 3 Гб ? Получается, что функция возвращает больше, чем размер файла подкачки.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:24.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025