Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: свободная физическая память и ресурсы Добавлено: 11.07.04 00:24  

Автор вопроса:  Chan | Web-сайт: chan-dzu.chat.ru | ICQ: 26977559 
Как определить количество свободной физической памяти и ресурсов, как это делается например в окошке about блокнота?

Предполагаю, что тема уже обсуждалась, но я найти не смог. Так что можно кинуть в меня ссылкой.

Ответить

  Ответы Всего ответов: 15  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 11.07.04 01:51
Используй GlobalMemoryStatus...
Ну а вот пример класса:

Private Type MEMORYSTATUS
        dwLength As Long
        dwMemoryLoad As Long
        dwTotalPhys As Long
        dwAvailPhys As Long
        dwTotalPageFile As Long
        dwAvailPageFile As Long
        dwTotalVirtual As Long
        dwAvailVirtual As Long
End Type

Private Declare Sub GlobalMemoryStatus Lib "kernel32" _
    ;(lpBuffer As MEMORYSTATUS)
Private mmemMemoryStatus As MEMORYSTATUS
Public Property Get FreeMemory() As Long
    FreeMemory = mmemMemoryStatus.dwAvailPhys
End Property
Public Property Get TotalMemory() As Long
    TotalMemory = mmemMemoryStatus.dwTotalPhys
End Property
Public Property Get TotalVirtualMemory() As Long
    TotalVirtualMemory = mmemMemoryStatus.dwTotalVirtual
End Property
Public Property Get AvailableVirtualMemory() As Long
    AvailableVirtualMemory = mmemMemoryStatus.dwAvailVirtual
End Property
Private Sub Class_Initialize()
    mmemMemoryStatus.dwLength = Len(mmemMemoryStatus)
    GlobalMemoryStatus mmemMemoryStatus
End Sub
Public Sub Refresh()
    GlobalMemoryStatus mmemMemoryStatus
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Chan



ICQ: 26977559 

Вопросов: 3
Ответов: 14
 Web-сайт: chan-dzu.chat.ru
 Профиль | | #2
Добавлено: 11.07.04 12:37
А что такое "системные ресурсы" и как их определить (см. about notepad'а)?

Ответить

Номер ответа: 3
Автор ответа:
 Chan



ICQ: 26977559 

Вопросов: 3
Ответов: 14
 Web-сайт: chan-dzu.chat.ru
 Профиль | | #3
Добавлено: 11.07.04 12:39
Кстати, твой пример, помоему, только для 9x, для NT'ей там другой код?

Ответить

Номер ответа: 4
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #4
Добавлено: 14.07.04 16:49
Кажется тебе это надо... ;)

Private Type MEMORYSTATUS
    dwLength As Long
    dwMemoryLoad As Long
    dwTotalPhys As Long
    dwAvailPhys As Long
    dwTotalPageFile As Long
    dwAvailPageFile As Long
    dwTotalVirtual As Long
    dwAvailVirtual As Long
End Type
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)

Private Sub GetMemory()
Dim MemStat As MEMORYSTATUS
GlobalMemoryStatus MemStat
LabelMemory.Caption = "Доступная физическая память: " & Format(MemStat.dwTotalPhys / 1024, "### ### ##0";) & " КБ"
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 Chan



ICQ: 26977559 

Вопросов: 3
Ответов: 14
 Web-сайт: chan-dzu.chat.ru
 Профиль | | #5
Добавлено: 14.07.04 22:00
2Andr: Кажется мне это уже советовали. Не так ли?

Ответить

Номер ответа: 6
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #6
Добавлено: 15.07.04 19:51
Но это именно то что ты ищешь.... :)

Ответить

Номер ответа: 7
Автор ответа:
 Чан



ICQ: 26977559 

Вопросов: 4
Ответов: 18
 Профиль | | #7 Добавлено: 17.07.04 17:43
Но это мне уже советовали... ;-)

Меня теперь больше интересует, что такое есть "свободные системные ресурсы" и как их определить.

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 17.07.04 19:16
свободно, это то что не занято :)
определить, как показано выше :)

Вопрос на вопрос, а что ты имел ввиду когда спрашивал !?

Ответить

Номер ответа: 9
Автор ответа:
 Чан



ICQ: 26977559 

Вопросов: 4
Ответов: 18
 Профиль | | #9 Добавлено: 18.07.04 02:15
Я свпрашивал "как определить количество свободной физической памяти И ресурсов". Ключевое слово "И" :-). Откорой блокнот->About. С памятью понятно. А вот что есть такое ресурсы?

Ответить

Номер ответа: 10
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #10
Добавлено: 18.07.04 02:26
Никаких ресурсов я там не нашел, только доступную физ. память... а раз хочется больше, бери и ищи информацию по NTQuerySystemInformation... Там тебе все расскажет... только искать прийдется тщательно...

Ответить

Номер ответа: 11
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #11
Добавлено: 18.07.04 04:06
Есть у меня старенький пример. Ещё на VB3.
Там используется функция GetFreeSystemResources.

 Залез в MSDN и там нашёл 32-битный эквивалент.

The following table provides a list of 16-bit Windows API elements that are not necessary or were superseded in the Win32 API.

GetFreeSystemResources Replaced by the GlobalMemoryStatus function.

 Если нет MSDN, то вот тебе сразу объявления

GlobalMemoryStatus
The GlobalMemoryStatus function obtains information about the computer system's current usage of both physical and virtual memory.

VOID GlobalMemoryStatus(
  LPMEMORYSTATUS lpBuffer // pointer to the memory status structure
);
 
Parameters
lpBuffer
Pointer to a MEMORYSTATUS structure. The GlobalMemoryStatus function stores information about current memory availability into this structure.
Return Values
This function does not return a value.

typedef struct _MEMORYSTATUS { // mst
    ;DWORD dwLength; // sizeof(MEMORYSTATUS)
    ;DWORD dwMemoryLoad; // percent of memory in use
    ;DWORD dwTotalPhys; // bytes of physical memory
    ;DWORD dwAvailPhys; // free physical memory bytes
    ;DWORD dwTotalPageFile; // bytes of paging file
    ;DWORD dwAvailPageFile; // free bytes of paging file
    ;DWORD dwTotalVirtual; // user bytes of address space
    ;DWORD dwAvailVirtual; // free user bytes
} MEMORYSTATUS, *LPMEMORYSTATUS;
 
dwLength
The size in bytes of the MEMORYSTATUS data structure. You do not need to set this member before calling the GlobalMemoryStatus function; the function sets it.

dwMemoryLoad
Specifies a number between 0 and 100 that gives a general idea of current memory utilization, in which 0 indicates no memory use and 100 indicates full memory use.

dwTotalPhys
Indicates the total number of bytes of physical memory.

dwAvailPhys
Indicates the number of bytes of physical memory available.

dwTotalPageFile
Indicates the total number of bytes that can be stored in the paging file. Note that this number does not represent the actual physical size of the paging file on disk.

dwAvailPageFile
Indicates the number of bytes available in the paging file.

dwTotalVirtual
Indicates the total number of bytes that can be described in the user mode portion of the virtual address space of the calling process.

dwAvailVirtual
Indicates the number of bytes of unreserved and uncommitted memory in the user mode portion of the virtual address space of the calling process.

Ответить

Номер ответа: 12
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #12
Добавлено: 18.07.04 04:08
Хотя тебе уже Barsik ответил.

Ответить

Номер ответа: 13
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #13
Добавлено: 18.07.04 11:31
вот уже три раза кинули одно и то же :)))

Ответить

Номер ответа: 14
Автор ответа:
 Чан



ICQ: 26977559 

Вопросов: 4
Ответов: 18
 Профиль | | #14 Добавлено: 18.07.04 16:21
Хочу сделать вот так: http://chan-dzu.chat.ru/notepad.gif (скриншот из родного нотпада)

Ответить

Номер ответа: 15
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #15
Добавлено: 18.07.04 17:27
Из общей памяти вычти занятую

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам