Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Комплект лабораторных работ / Лабораторная работа2

.doc
Скачиваний:
17
Добавлен:
01.05.2014
Размер:
46.59 Кб
Скачать

Санкт-Петербургский

Государственный электротехнический университет

Отчет

по лабораторной работе №2

«Размер памяти»

Выполнил: Солоха В.Н.

Группа:0331

Факультет КТИ

Санкт-Петербург

2003г.

Цель работы: Определение размеров памяти и файлов с нею связанными.

Используемые API функции:

Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)

- Функция заполняет структуру MEMORYSTATUS информацией о текущем состоянии памяти в системе.

Интерфейс программы:

Текст программы:

Begin VB.Form Form4

BorderStyle = 1 'Fixed Single

Caption = "Работа с Памятью"

ClientHeight = 2685

ClientLeft = 45

ClientTop = 330

ClientWidth = 4320

LinkTopic = "Form4"

MaxButton = 0 'False

MinButton = 0 'False

ScaleHeight = 2685

ScaleWidth = 4320

StartUpPosition = 2 'CenterScreen

Begin VB.Timer Timer1

Enabled = 0 'False

Interval = 1000

Left = 3480

Top = 3720

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 6

Left = 120

TabIndex = 6

Top = 2280

Width = 3975

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 5

Left = 120

TabIndex = 5

Top = 1920

Width = 3975

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 4

Left = 120

TabIndex = 4

Top = 1560

Width = 3975

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 3

Left = 120

TabIndex = 3

Top = 1200

Width = 3975

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 2

Left = 120

TabIndex = 2

Top = 840

Width = 3975

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 1

Left = 120

TabIndex = 1

Top = 480

Width = 3975

End

Begin VB.Label Label1

Caption = "Label1"

Height = 255

Index = 0

Left = 120

TabIndex = 0

Top = 120

Width = 3975

End

End

Attribute VB_Name = "Form4"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

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 pUdtMemStatus As MEMORYSTATUS

Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)

Public Function AvailablePhysicalMemory() As Double

'Return Value in Megabytes

Dim dblAns As Double

GlobalMemoryStatus pUdtMemStatus

dblAns = pUdtMemStatus.dwAvailPhys

AvailablePhysicalMemory = BytesToMegabytes(dblAns)

End Function

Public Function TotalPhysicalMemory() As Double

'Return Value in Megabytes

Dim dblAns As Double

GlobalMemoryStatus pUdtMemStatus

dblAns = pUdtMemStatus.dwTotalPhys

TotalPhysicalMemory = BytesToMegabytes(dblAns)

End Function

Public Function PercentMemoryFree() As Double

PercentMemoryFree = Format(AvailableMemory / TotalMemory * 100, "0#")

End Function

Public Function AvailablePageFile() As Double

'Return Value in Megabytes

Dim dblAns As Double

GlobalMemoryStatus pUdtMemStatus

dblAns = pUdtMemStatus.dwAvailPageFile

AvailablePageFile = BytesToMegabytes(dblAns)

End Function

Public Function PageFileSize() As Double

'Return Value in Megabytes

Dim dblAns As Double

GlobalMemoryStatus pUdtMemStatus

dblAns = pUdtMemStatus.dwTotalPageFile

PageFileSize = BytesToMegabytes(dblAns)

End Function

Public Function AvailableMemory() As Double

'Return Value in Megabytes

AvailableMemory = AvailablePhysicalMemory + AvailablePageFile

End Function

Public Function TotalMemory() As Double

'Return Value in Megabytes

TotalMemory = PageFileSize + TotalPhysicalMemory

End Function

Private Function BytesToMegabytes(Bytes As Double) As Double

Dim dblAns As Double

dblAns = (Bytes / 1024) / 1024

BytesToMegabytes = Format(dblAns, "###,###,##0.00")

End Function

Private Sub Form_Load()

Timer1.Enabled = True

Label1(0).Caption = "Доступная Память " & AvailableMemory & " Mb"

Label1(1).Caption = "Доступный размер файла подкачки " & AvailablePageFile & " Mb"

Label1(2).Caption = "Доступная Физическая Память " & AvailablePhysicalMemory & " Mb"

Label1(3).Caption = "Размер файла подкачки " & PageFileSize & " Mb"

Label1(4).Caption = "Свободно памяти " & PercentMemoryFree & Chr(37)

Label1(5).Caption = "Общий объем памяти " & TotalMemory & " Mb"

Label1(6).Caption = "Физической памти " & TotalPhysicalMemory & " Mb"

End Sub

Private Sub Form_Unload(Cancel As Integer)

Timer1.Enabled = False

End Sub

Private Sub Timer1_Timer()

Label1(0).Caption = "Доступная Память " & AvailableMemory & " Mb"

Label1(1).Caption = "Доступный размер файла подкачки " & AvailablePageFile & " Mb"

Label1(2).Caption = "Доступная Физическая Память " & AvailablePhysicalMemory & " Mb"

Label1(3).Caption = "Размер файла подкачки " & PageFileSize & " Mb"

Label1(4).Caption = "Свободно памяти " & PercentMemoryFree & Chr(37)

Label1(5).Caption = "Общий объем памяти " & TotalMemory & " Mb"

Label1(6).Caption = "Физической памти " & TotalPhysicalMemory & " Mb"

End Sub