Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Функция GlobalMemoryStatus





Функция GlobalMemoryStatus из библиотеки Kernel32.dll предоставляет информацию об использовании физической и виртуальной памяти компьютера. Вот её прототип:

VOID GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer // Адрес структуры MemoryStatus);

Тип данных LPMEMORYSTATUS - это указатель на структуру MemoryStatus:

typedef struct _MEMORYSTATUS { DWORD dwLength; // Размер структуры DWORD dwMemoryLoad; // Процент использования памяти DWORD dwTotalPhys; // Физическая память, байт DWORD dwAvailPhys; // Свободная физическая память, байт DWORD dwTotalPageFile; // Размер файла подкачки, байт DWORD dwAvailPageFile; // Свободных байт в файле подкачки DWORD dwTotalVirtual; // Виртуальная память, используемая процессом DWORD dwAvailVirtual; // Свободная виртуальная память } MEMORYSTATUS, *LPMEMORYSTATUS;

Функция не возвращает никаких значений. Вот её объявление в Visual FoxPro:

DECLARE GlobalMemoryStatus IN WIN32API String @ MemoryStatus

В следующем примере показан код функции GlobalMemory, которая вызывает Windows API функцию GlobalMemoryStatus и заполняет массив taMemoryStatus данными из структуры MemoryStatus:

FUNCTION GlobalMemory PARAMETERS taMemoryStatus EXTERNAL ARRAY taMemoryStatus DIMENSION taMemoryStatus[7] LOCAL lcMemoryStatus DECLARE GlobalMemoryStatus IN WIN32API String @ lcMemoryStatus = CHR(32) + REPLICATE(CHR(0), 31) && Подготовка структуры GlobalMemoryStatus(@lcMemoryStatus) taMemoryStatus[1] = CTOBIN(SUBSTR(lcMemoryStatus,5,4), '4RS') taMemoryStatus[2] = CTOBIN(SUBSTR(lcMemoryStatus,9,4), '4RS') taMemoryStatus[3] = CTOBIN(SUBSTR(lcMemoryStatus,13,4), '4RS') taMemoryStatus[4] = CTOBIN(SUBSTR(lcMemoryStatus,17,4), '4RS') taMemoryStatus[5] = CTOBIN(SUBSTR(lcMemoryStatus,21,4), '4RS') taMemoryStatus[6] = CTOBIN(SUBSTR(lcMemoryStatus,25,4), '4RS') taMemoryStatus[7] = CTOBIN(SUBSTR(lcMemoryStatus,29,4), '4RS') RETURN ENDFUNC

Структура MemoryStatus формируется в переменной lcMemoryStatus. В первое поле структуры заносится значение её длины (32 байта). Остальные поля заполняются нулями.

После выполнения функции GlobalMemoryStatus структура MemoryStatus "расшифровывается" при помощи функции CTOBIN.

Пример вызова функции GlobalMemory из вашего приложения:

LOCAL lcInfo, laMemoryStatus[1] DECLARE GlobalMemoryStatus IN WIN32API String @ GlobalMemory(@laMemoryStatus) lcInfo = 'Физическая память, байт: ' + LTRIM(STR(laMemoryStatus[2])) +; ', свободно: ' + LTRIM(STR(laMemoryStatus[3])) + CHR(13) +; 'Виртуальная память, байт: ' + LTRIM(STR(laMemoryStatus[6])) +; ', свободно: ' + LTRIM(STR(laMemoryStatus[7])) = MESSAGEBOX(lcInfo)

Date: 2015-07-27; view: 813; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию