Так же в программе было реализовано меню, которое позволяет выйти из программы, запустить один из модулей будь то информационный модуль, тестовый, листинговый или дополнительный, позволяет отображать только один из фреймов с необходимыми вам модулями или же отображает все фреймы со всеми модулями, а так позволяет получить справку о программе. Пример работы с меню программного продукта показан на рисунке 4.6.
Рис. 4.5. Пример запуска окна «Свойства: Экран».
Рис. 4.6. Работа меню программы.
Заключение
Анализируя данный программный продукт можно смело заявить, что с поставленной задачей я справился, однако это не значит, что программа полностью готова и ей уже не требуются доработки, скорее наоборот, данный программный продукт будет совершенствоваться и расширяться, в нем будут появляться все новые и новые возможности. На данном этапе программа в версии 1.0.1 практически полностью удовлетворяет поставленной задаче. Программа работает правильно и без сбоев. Как и рассчитывалось она не особо требовательна к системным ресурсам, будь то память или область жесткого диска. Однако на данном этапе есть ее некоторые недостатки, а именно данный программный продукт содержит не так много модулей для выдачи информации и особенно мало тестов. Однако я уверен что в дальнейшем этот недостаток будет исправен и будут появляться новые версии программы, которые будут содержать в себе больше информационных и тестовых модулей, будет проведена работа по усовершенствованию, нормализации и упрощению программного кода, который приведет к меньшему объему всей программы и к ее более быстрой работе. Для программы будет создан удобный установщик, который поможет легко и правильно установить программу обычным пользователем.
Данный программный продукт смогут без труда применять простые пользователи персональных компьютеров, дабы расширить знания о своем персональном компьютере и о персональных компьютерах вообще. К тому же я не исключаю возможности применения данного программного продукта в сфере обучения, ведь он позволяет показывать различную информацию об отдельных модуля и системах персонального компьютера, а так же работать с системными файлами и стандартными диалоговыми окнами настройки операционной системы Windows. К тому же данный программный продукт на сегодняшний день является бесплатным программным обеспечением и это дает возможность работы с ней любому желающему пользователю персонального компьютера не затрачивая на это деньги. Сделано это еще для того чтобы программный продукт распространялся наиболее широко и завоевывал популярность среди программного обеспечения поскольку на данный момент программное обеспечение зачастую стоит не дешево и порой пользователи не могут позволить себе приобрести дорогостоящую программу, а мой программный продукт дает пользователю выбор – либо приобретать за определенную сумму программу, которая хоть и по объему информации и тестов немного больше, но работает медленно а иногда и вовсе некорректно, потребляет много системных ресурсов, либо взять бесплатно мой программный продукт, который работает быстро и нетребователен к ресурсам персонального компьютера.
В ближайшее время я собираюсь распространять данный программный продукт через интернет на своем личном сайте, на котором уже находится не одна из моих разработок и надеюсь, что он займет достойное место среди программных продуктов подобного рода, тем более, что сейчас таких программ очень мало.
1. Вендров А.М. Один из подходов к выбору средств проектирования баз данных и приложений. "СУБД", 2003, №3.
2. Зиндер Е.З. Бизнес-реинжиниринг и технологии системного проектирования. Учебное пособие. М., Центр Информационных Технологий, 2000
3. Калянов Г.Н. CASE. Структурный системный анализ (автоматизация и применение). М., "Лори", 1999.
4. Международные стандарты, поддерживающие жизненный цикл программных средств. М., МП "Экономика", 1998
5. Новоженов Ю.В. Объектно-ориентированные технологии разработки сложных программных систем. М., 1999.
6. Панащук С.А. Разработка информационных систем с использованием CASE-системы Silverrun. "СУБД", 1998, №3.
7. Горчинская О.Ю. Designer/2000 - новое поколение CASE-продуктов фирмы ORACLE. "СУБД", 2000, №3.
8. Горин С.В., Тандоев А.Ю. CASE-средство S-Designor 4.2 для разработки структуры базы данных. "СУБД", 2002, №1.
9. Петров Ю.К. JAM - инструментальное средство разработки приложений в информационных системах архитектуры "клиент/сервер", построенных на базе РСУБД. "СУБД", 2002, №3.
10. Ахметов К.С. Курс молодого бойца. Изд. 5-е, перераб. и доп. – М.: Компьютер Пресс, 1998. – 365с.: ил.
11. Олифер В.Г. Сетевые операционные системы. СПб.:Питер, 2002.-538с.
Приложения
Приложение 1 (Листинг модуля главного окна программы)
Option Explicit
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public FileListName As String 'для передачи имени файла для листинга
Public NumDrive As Byte 'для передачи информации о типе дисков
Dim sDir As String, sTemp As String * 256, nSize As Long
Private Sub AutoexecNtCommand_Click()
nSize = GetWindowsDirectory(sTemp, 255)
sDir = Left(sTemp, nSize)
FileListName = Left(sDir, 3) + "Autoexec.nt"
Load FormListIni
FormListIni.Show
End Sub
Private Sub BootIniCommand_Click()
nSize = GetWindowsDirectory(sTemp, 255)
sDir = Left(sTemp, nSize)
FileListName = Left(sDir, 3) + "boot.ini"
Load FormListIni
FormListIni.Show
End Sub
Private Sub Command1_Click()
Load FormInfoMemory
FormInfoMemory.Show
End Sub
Private Sub Command10_Click()
NumDrive = 2
Load FormTest
FormTest.Show
End Sub
Private Sub Command2_Click()
NumDrive = 3
Load FormDisks
FormDisks.Show
End Sub
Private Sub Command3_Click()
NumDrive = 2
Load FormDisks
FormDisks.Show
End Sub
Private Sub Command4_Click()
NumDrive = 5
Load FormDisks
FormDisks.Show
End Sub
Private Sub Command5_Click()
Load FormDisplay
FormDisplay.Show
End Sub
Private Sub Command6_Click()
Call Shell(App.Path + "\NetProject\InfoNet.exe", vbNormalFocus)
End Sub
Private Sub Command7_Click()
Load FormProc
FormProc.Show
End Sub
Private Sub Command8_Click(Index As Integer)
Select Case Index
Case 0: Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0", 5)
Case 1: Call Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1", 5)
Case 2: Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0", 5)
Case 3: Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0", 5)
Case 4: Call Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0", 5)
Case 5: Call Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl", 5)
Case 6: Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @1", 5)
Case 7: Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @0", 5)
Case 8: Call Shell("rundll32.exe shell32.dll,Control_RunDLL modem.cpl", 5)
Case 9: Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1", 5)
End Select
End Sub
Private Sub Command9_Click()
NumDrive = 3
Load FormTest
FormTest.Show
End Sub
Private Sub ConfigNtCommand_Click()
nSize = GetWindowsDirectory(sTemp, 255)
sDir = Left(sTemp, nSize)
FileListName = Left(sDir, 3) + "config.nt"
Load FormListIni
FormListIni.Show
End Sub
Private Sub MnuExit_Click()
End
End Sub
Private Sub MnuHelpAbout_Click()
Load FormAbout
FormAbout.Show
End Sub
Private Sub SistemIniCommand_Click()
nSize = GetWindowsDirectory(sTemp, 255)
sDir = Left(sTemp, nSize)
FileListName = sDir + "\system.ini"
Load FormListIni
FormListIni.Show
End Sub
Private Sub WinIniCommand_Click()
nSize = GetWindowsDirectory(sTemp, 255)
sDir = Left(sTemp, nSize)
FileListName = sDir + "\win.ini"
Load FormListIni
FormListIni.Show
End Sub
Приложение 2 (Листинг модуля окна свойств памяти)
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)
Dim MS As MEMORYSTATUS
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
MS.dwLength = Len(MS)
Call GlobalMemoryStatus(MS)
With MS
Text1(0).Text = Format$(.dwTotalPhys / 1024, "#,###") & " Kb"
Text1(1).Text = Format$(.dwTotalPhys / 1024 - .dwAvailPhys / 1024, "#,###") & " Kb"
Text1(2).Text = Format$(.dwAvailPhys / 1024, "#,###") & " Kb"
Text1(3).Text = .dwMemoryLoad
Text1(4).Text = Format$(.dwTotalPageFile / 1024, "#,###") & " Kb"
Text1(5).Text = Format$(.dwAvailPageFile / 1024, "#,###") & " Kb"
Text1(6).Text = Format$(.dwTotalVirtual / 1024, "#,###") & " Kb"
Text1(7).Text = Format$(.dwAvailVirtual / 1024, "#,###") & " Kb"
End With
End Sub
Приложение 3 (листинг модуля окна информации о дисках)
Option Explicit
Private Const vbDot = 46
Private Const MAXDWORD = &HFFFFFFFF
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Type FILE_PARAMS
bRecurse As Boolean
nFileCount As Long
nFileSize As Currency
nSearched As Long
sFileNameExt As String
sFileRoot As String
End Type
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenW" (ByVal lpString As Long) As Long
Private Declare Function GetLogicalDrives Lib "kernel32" () As Long
Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Private Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Command2_Click()
Dim Serial As Long, VName As String, FSName As String
Dim SecPerClus As Long ' число секторов в кластере
Dim BytePerSec As Long ' число байт в секторе
Dim FreeClus As Long ' число свободных кластеров
Dim TotalClus As Long ' общее число кластеров
Dim Retval As Long ' возвращаемое значение
Dim Free As Double
Dim FP As FILE_PARAMS
VName = String$(255, Chr$(0))
FSName = String$(255, Chr$(0))
'получаем информацию о диске