Смекни!
smekni.com

Разработка программного продукта "ПК инфо" (стр. 9 из 10)

Так же в программе было реализовано меню, которое позволяет выйти из программы, запустить один из модулей будь то информационный модуль, тестовый, листинговый или дополнительный, позволяет отображать только один из фреймов с необходимыми вам модулями или же отображает все фреймы со всеми модулями, а так позволяет получить справку о программе. Пример работы с меню программного продукта показан на рисунке 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))

'получаем информацию о диске