48635 (588586), страница 7
Текст из файла (страница 7)
В ближайшее время я собираюсь распространять данный программный продукт через интернет на своем личном сайте, на котором уже находится не одна из моих разработок и надеюсь, что он займет достойное место среди программных продуктов подобного рода, тем более, что сейчас таких программ очень мало.
Список используемой литературы
-
Вендров А.М. Один из подходов к выбору средств проектирования баз данных и приложений. "СУБД", 2003, №3.
-
Зиндер Е.З. Бизнес-реинжиниринг и технологии системного проектирования. Учебное пособие. М., Центр Информационных Технологий, 2000
-
Калянов Г.Н. CASE. Структурный системный анализ (автоматизация и применение). М., "Лори", 1999.
-
Международные стандарты, поддерживающие жизненный цикл программных средств. М., МП "Экономика", 1998
-
Новоженов Ю.В. Объектно-ориентированные технологии разработки сложных программных систем. М., 1999.
-
Панащук С.А. Разработка информационных систем с использованием CASE-системы Silverrun. "СУБД", 1998, №3.
-
Горчинская О.Ю. Designer/2000 - новое поколение CASE-продуктов фирмы ORACLE. "СУБД", 2000, №3.
-
Горин С.В., Тандоев А.Ю. CASE-средство S-Designor 4.2 для разработки структуры базы данных. "СУБД", 2002, №1.
-
Петров Ю.К. JAM - инструментальное средство разработки приложений в информационных системах архитектуры "клиент/сервер", построенных на базе РСУБД. "СУБД", 2002, №3.
-
Ахметов К.С. Курс молодого бойца. Изд. 5-е, перераб. и доп. – М.: Компьютер Пресс, 1998. – 365с.: ил.
-
Олифер В.Г. Сетевые операционные системы. СПб.:Питер, 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))
'получаем информацию о диске
With FP
.sFileRoot = QualifyPath(Combo1.Text + "\") 'начальный путь
.sFileNameExt = "*.*" 'нужные файлы
.bRecurse = 1 'True = рекурсией
End With
Call GetDirectorySize(FP.sFileRoot, FP)
GetVolumeInformation Combo1.Text + "\", VName, 255, Serial, 0, 0, FSName, 255
Retval = GetDiskFreeSpace(Combo1.Text + "\", SecPerClus, BytePerSec, FreeClus, TotalClus)
VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1)
FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)
Free = (FreeClus / 1000 * SecPerClus * BytePerSec) * 1000
If MainForm.NumDrive = 2 Then Label1(0).Caption = "Тип устройства: Съемный диск"
If MainForm.NumDrive = 3 Then Label1(0).Caption = "Тип устройства: Жесткий диск"
If MainForm.NumDrive = 5 Then Label1(0).Caption = "Тип устройства: CD или DVD диск"
Label1(1).Caption = "Полный объем: " + Format$(FP.nFileSize + Free, "#,###") & " байт" + " (" + Format$((FP.nFileSize + Free) / 1073741824, "###.#") + " Гбайт)"
Label1(2).Caption = "Свобоный объем: " + Format$(Free, "#,###") & " байт" + " (" + Format$(Free / 1073741824, "###.#") + " Гбайт)"
Label1(3).Caption = "Используемый объем: " + Format$(FP.nFileSize, "###,###,###,###") + " байт" + " (" + Format$(FP.nFileSize / 1073741824, "###.#") + " Гбайт)"
Label1(4).Caption = "Файловая система: " + FSName
Label1(5).Caption = "Число свободных кластеров: " + CStr(FreeClus)
Label1(6).Caption = "Число секторов в кластере: " + CStr(SecPerClus)
Label1(7).Caption = "Число байт в секторе: " + CStr(BytePerSec)
Label1(8).Caption = "Общее число кластеров: " + CStr(TotalClus)
ProgressBar1.Value = ((FP.nFileSize / (FP.nFileSize + Free)) * 100): Label2.Caption = CStr(CInt(ProgressBar1.Value)) + "%"
End Sub
Private Sub Form_Load()
Dim i As Byte, drivetype As Long, k As Byte
FillCombo Combo1, True
For i = 0 To Combo1.ListCount - 1
Combo1.ListIndex = i
drivetype = GetDriveType(Combo1.Text + "\")
If drivetype = MainForm.NumDrive Then Combo1.AddItem Combo1.Text: k = k + 1
Next i
For i = 0 To Combo1.ListCount - k - 1
Combo1.RemoveItem 0
Next i
Combo1.ListIndex = 0
Call Command2_Click
End Sub
Private Sub FillCombo(cbo As ComboBox, ByVal bUsed As Boolean)
Dim DriveNum As Long
cbo.Clear
For DriveNum = 0 To 25
If CBool(GetLogicalDrives And (2 ^ DriveNum)) = bUsed Then
cbo.AddItem Chr$(Asc("A") + DriveNum) & ":"
End If
Next DriveNum
End Sub
Private Sub GetDirectorySize(sRoot As String, FP As FILE_PARAMS)
Dim wfd As WIN32_FIND_DATA
Dim hFile As Long
hFile = FindFirstFile(sRoot & "*.*", wfd)
If hFile <> INVALID_HANDLE_VALUE Then
Do
If Asc(wfd.cFileName) <> vbDot Then
If (wfd.dwFileAttributes And vbDirectory) Then
If FP.bRecurse Then
GetDirectorySize sRoot & TrimNull(wfd.cFileName) & "\", FP
End If 'If fp.bRecurse
Else
FP.nFileCount = FP.nFileCount + 1
FP.nFileSize = FP.nFileSize + ((wfd.nFileSizeHigh * (MAXDWORD + 1)) + wfd.nFileSizeLow)
End If 'If WFD.dwFileAttributes
End If 'If Asc(wfd.cFileName)
FP.nSearched = FP.nSearched + 1
Loop While FindNextFile(hFile, wfd)
End If 'If hFile
End Sub
Private Function TrimNull(startstr As String) As String
TrimNull = Left$(startstr, lstrlen(StrPtr(startstr)))
End Function
Private Function QualifyPath(sPath As String) As String
If Right$(sPath, 1) <> "\" Then
QualifyPath = sPath & "\"
Else
QualifyPath = sPath
End If
End Function