![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, уважаемые мастера 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
|
||||
|
||||
![]() тебя кто учил округлять на началах функции, считай байтами, а потом только на выводе округляй
![]() Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей ![]() |
#3
|
|||
|
|||
![]() Во первых, речь не об этом, а во вторых, код не мой, я его взял с интернета, так что претензии не ко мне.
|
#4
|
||||
|
||||
![]() А Эти данные всегда буду отличаться от того, что есть на самом деле, поскольку файл подкачки на 100-200 Мб больше чем значение возвращаемое функцией. Это позиция безопасности. Вдруг надо свалить данные в своп, а места на диске нет?
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#5
|
|||
|
|||
![]() Цитата:
Да? Тогда почему у меня файл подкачки имеет размер 1 Гб, а функция возвращает размер примерно 3 Гб ? Получается, что функция возвращает больше, чем размер файла подкачки. |