Комплект лабораторных работ / Лабораторная работа2
.docСанкт-Петербургский
Государственный электротехнический университет
Отчет
по лабораторной работе №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