|
Разработка программного продукта "ПК инфо" |
p align="left">Данный программный продукт смогут без труда применять простые пользователи персональных компьютеров, дабы расширить знания о своем персональном компьютере и о персональных компьютерах вообще. К тому же я не исключаю возможности применения данного программного продукта в сфере обучения, ведь он позволяет показывать различную информацию об отдельных модуля и системах персонального компьютера, а так же работать с системными файлами и стандартными диалоговыми окнами настройки операционной системы Windows. К тому же данный программный продукт на сегодняшний день является бесплатным программным обеспечением и это дает возможность работы с ней любому желающему пользователю персонального компьютера не затрачивая на это деньги. Сделано это еще для того чтобы программный продукт распространялся наиболее широко и завоевывал популярность среди программного обеспечения поскольку на данный момент программное обеспечение зачастую стоит не дешево и порой пользователи не могут позволить себе приобрести дорогостоящую программу, а мой программный продукт дает пользователю выбор - либо приобретать за определенную сумму программу, которая хоть и по объему информации и тестов немного больше, но работает медленно а иногда и вовсе некорректно, потребляет много системных ресурсов, либо взять бесплатно мой программный продукт, который работает быстро и нетребователен к ресурсам персонального компьютера. В ближайшее время я собираюсь распространять данный программный продукт через интернет на своем личном сайте, на котором уже находится не одна из моих разработок и надеюсь, что он займет достойное место среди программных продуктов подобного рода, тем более, что сейчас таких программ очень мало. Список используемой литературы1. Вендров А.М. Один из подходов к выбору средств проектирования баз данных и приложений. "СУБД", 2003, №3. 2. Зиндер Е.З. Бизнес-реинжиниринг и технологии системного проектирования. Учебное пособие. М., Центр Информационных Технологий, 20003. Калянов Г.Н. 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 ExplicitPrivate Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPublic FileListName As String 'для передачи имени файла для листингаPublic NumDrive As Byte 'для передачи информации о типе дисковDim sDir As String, sTemp As String * 256, nSize As LongPrivate Sub AutoexecNtCommand_Click()nSize = GetWindowsDirectory(sTemp, 255)sDir = Left(sTemp, nSize)FileListName = Left(sDir, 3) + "Autoexec.nt"Load FormListIniFormListIni.ShowEnd SubPrivate Sub BootIniCommand_Click()nSize = GetWindowsDirectory(sTemp, 255)sDir = Left(sTemp, nSize)FileListName = Left(sDir, 3) + "boot.ini"Load FormListIniFormListIni.ShowEnd SubPrivate Sub Command1_Click()Load FormInfoMemoryFormInfoMemory.ShowEnd SubPrivate Sub Command10_Click()NumDrive = 2Load FormTestFormTest.ShowEnd SubPrivate Sub Command2_Click()NumDrive = 3Load FormDisksFormDisks.ShowEnd SubPrivate Sub Command3_Click()NumDrive = 2Load FormDisksFormDisks.ShowEnd SubPrivate Sub Command4_Click()NumDrive = 5Load FormDisksFormDisks.ShowEnd SubPrivate Sub Command5_Click()Load FormDisplayFormDisplay.ShowEnd SubPrivate Sub Command6_Click()Call Shell(App.Path + "\NetProject\InfoNet.exe", vbNormalFocus)End SubPrivate Sub Command7_Click()Load FormProcFormProc.ShowEnd SubPrivate Sub Command8_Click(Index As Integer)Select Case IndexCase 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 SelectEnd SubPrivate Sub Command9_Click()NumDrive = 3Load FormTestFormTest.ShowEnd SubPrivate Sub ConfigNtCommand_Click()nSize = GetWindowsDirectory(sTemp, 255)sDir = Left(sTemp, nSize)FileListName = Left(sDir, 3) + "config.nt"Load FormListIniFormListIni.ShowEnd SubPrivate Sub MnuExit_Click()EndEnd SubPrivate Sub MnuHelpAbout_Click()Load FormAboutFormAbout.ShowEnd SubPrivate Sub SistemIniCommand_Click()nSize = GetWindowsDirectory(sTemp, 255)sDir = Left(sTemp, nSize)FileListName = sDir + "\system.ini"Load FormListIniFormListIni.ShowEnd SubPrivate Sub WinIniCommand_Click()nSize = GetWindowsDirectory(sTemp, 255)sDir = Left(sTemp, nSize)FileListName = sDir + "\win.ini"Load FormListIniFormListIni.ShowEnd SubПриложение 2 (Листинг модуля окна свойств памяти)Private Type MEMORYSTATUSdwLength As LongdwMemoryLoad As LongdwTotalPhys As LongdwAvailPhys As LongdwTotalPageFile As LongdwAvailPageFile As LongdwTotalVirtual As LongdwAvailVirtual As LongEnd TypePrivate Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)Dim MS As MEMORYSTATUSPrivate Sub Command1_Click()Unload MeEnd SubPrivate 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 WithEnd SubПриложение 3 (листинг модуля окна информации о дисках)Option ExplicitPrivate Const vbDot = 46Private Const MAXDWORD = &HFFFFFFFFPrivate Const MAX_PATH = 260Private Const INVALID_HANDLE_VALUE = -1Private Const FILE_ATTRIBUTE_DIRECTORY = &H10Private Type FILETIME dwLowDateTime As Long dwHighDateTime As LongEnd TypePrivate 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 * 14End TypePrivate Type FILE_PARAMS bRecurse As Boolean nFileCount As Long nFileSize As Currency nSearched As Long sFileNameExt As String sFileRoot As StringEnd TypePrivate Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As LongPrivate Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As LongPrivate Declare Function lstrlen Lib "kernel32" Alias "lstrlenW" (ByVal lpString As Long) As LongPrivate Declare Function GetLogicalDrives Lib "kernel32" () As LongPrivate Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPrivate 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 LongPrivate 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 LongPrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub Command2_Click()Dim Serial As Long, VName As String, FSName As StringDim SecPerClus As Long ' число секторов в кластереDim BytePerSec As Long ' число байт в сектореDim FreeClus As Long ' число свободных кластеровDim TotalClus As Long ' общее число кластеровDim Retval As Long ' возвращаемое значениеDim Free As DoubleDim FP As FILE_PARAMSVName = String$(255, Chr$(0))FSName = String$(255, Chr$(0))'получаем информацию о дискеWith FP .sFileRoot = QualifyPath(Combo1.Text + "\") 'начальный путь .sFileNameExt = "*.*" 'нужные файлы .bRecurse = 1 'True = рекурсиейEnd WithCall GetDirectorySize(FP.sFileRoot, FP)GetVolumeInformation Combo1.Text + "\", VName, 255, Serial, 0, 0, FSName, 255Retval = 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) * 1000If 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 = "Файловая система: " + FSNameLabel1(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 SubPrivate Sub Form_Load()Dim i As Byte, drivetype As Long, k As ByteFillCombo Combo1, TrueFor i = 0 To Combo1.ListCount - 1 Combo1.ListIndex = i drivetype = GetDriveType(Combo1.Text + "\") If drivetype = MainForm.NumDrive Then Combo1.AddItem Combo1.Text: k = k + 1Next iFor i = 0 To Combo1.ListCount - k - 1 Combo1.RemoveItem 0Next iCombo1.ListIndex = 0Call Command2_ClickEnd SubPrivate Sub FillCombo(cbo As ComboBox, ByVal bUsed As Boolean)Dim DriveNum As Longcbo.ClearFor DriveNum = 0 To 25 If CBool(GetLogicalDrives And (2 ^ DriveNum)) = bUsed Then cbo.AddItem Chr$(Asc("A") + DriveNum) & ":" End IfNext DriveNumEnd SubPrivate Sub GetDirectorySize(sRoot As String, FP As FILE_PARAMS)Dim wfd As WIN32_FIND_DATADim hFile As LonghFile = 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 hFileEnd SubPrivate Function TrimNull(startstr As String) As StringTrimNull = Left$(startstr, lstrlen(StrPtr(startstr)))End FunctionPrivate Function QualifyPath(sPath As String) As StringIf Right$(sPath, 1) <> "\" Then QualifyPath = sPath & "\"Else QualifyPath = sPathEnd IfEnd FunctionПриложение 4 (листинг модуля окна свойств дисплея)Option ExplicitPrivate Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As LongPrivate Const DRIVERVERSION As Long = 0 'Версия драйвераPrivate Const TECHNOLOGY As Long = 2 'Классификация устройстваPrivate Const HORZSIZE As Long = 4 'Размер по горизонтали в мм.Private Const VERTSIZE As Long = 6 'Размер по вертикали в мм.Private Const HORZRES As Long = 8 'Размер по горизонтали в точкахPrivate Const VERTRES As Long = 10 'Размер по вертикали в точкахPrivate Const BITSPIXEL As Long = 12 'Кол-во бит на точкуPrivate Const PLANES As Long = 14 'Number of planesPrivate Const NUMBRUSHES As Long = 16 'Number of brushes the device hasPrivate Const NUMPENS As Long = 18 'Number of pens the device hasPrivate Const NUMMARKERS As Long = 20 'Number of markers the device hasPrivate Const NUMFONTS As Long = 22 'Number of fonts the device hasPrivate Const NUMCOLORS As Long = 24 'Макс. кол-во возможных цветовPrivate Const PDEVICESIZE As Long = 26 'Size required for device descriptoPrivate Const CURVECAPS As Long = 28 'Curve capabilitiesPrivate Const LINECAPS As Long = 30 'Line capabilitiesPrivate Const POLYGONALCAPS As Long = 32 'Polygonal capabilitiesPrivate Const TEXTCAPS As Long = 34 'Text capabilitiesPrivate Const CLIPCAPS As Long = 36 'Clipping capabilitiesPrivate Const RASTERCAPS As Long = 38 'Bitblt capabilitiesPrivate Const ASPECTX As Long = 40 'Length of the X legPrivate Const ASPECTY As Long = 42 'Length of the Y legPrivate Const ASPECTXY As Long = 44 'Length of the hypotenusePrivate Const SHADEBLENDCAPS As Long = 45 'Shading and blending caps (IE5)Private Const LOGPIXELSX As Long = 88 'Logical pixels/inch in XPrivate Const LOGPIXELSY As Long = 90 'Logical pixels/inch in YPrivate Const SIZEPALETTE As Long = 104 'Number of entries in physical palettePrivate Const NUMRESERVED As Long = 106 'Number of reserved entries in palettePrivate Const COLORRES As Long = 108 'Количество цветовPrivate Const VREFRESH As Long = 116 'Текущий рефрешь по вертикали в Гц '(только для монитора)Private Const DESKTOPVERTRES As Long = 117 'Размер десктопа по горизонталиPrivate Const DESKTOPHORZRES As Long = 118 'Размер десктопа по вертикалиPrivate Const BLTALIGNMENT As Long = 119 'Preferred blt alignment'Для списка режимовPrivate Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As BooleanPrivate Const CCDEVICENAME = 32Private Const CCFORMNAME = 32Private Type DEVMODE dmDeviceName As String * CCDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As LongEnd TypePrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim sBPPtype As StringDim sFreqtype As StringDim CurrBPP As LongDim CurrVFreq As Long'Подписываем глубину цвета для удобства чтенияCurrBPP = GetDeviceCaps(hdc, BITSPIXEL)Select Case CurrBPP Case 4: sBPPtype = "(16 цветов)" Case 8: sBPPtype = "(256 цветов)" Case 16: sBPPtype = "(High Color)" Case 24, 32: sBPPtype = "(True Color)"End SelectCurrVFreq = GetDeviceCaps(hdc, VREFRESH)Select Case CurrVFreq Case 0, 1: sFreqtype = "(Определяется адаптером)" Case Else: sFreqtype = "(Ручная настройка)"End Select Label1(0).Caption = "Разрешение по горизонтали: " & GetDeviceCaps(hdc, HORZRES) & " пикселей"Label1(1).Caption = "Разрешение по вертикали: " & GetDeviceCaps(hdc, VERTRES) & " пикселей"Label1(2).Caption = "Разрешение по горизонтали в миллиметрах: " & GetDeviceCaps(hdc, HORZSIZE) & " мм"Label1(3).Caption = "Разрешение по вертикали в миллиметрах: " & GetDeviceCaps(hdc, VERTSIZE) & " мм"Label1(4).Caption = "Качество цветопередачи: " & CurrBPP & " бит " & sBPPtypeLabel1(5).Caption = "Количество цветов: " & 2 ^ CurrBPPLabel1(6).Caption = "Частота обновления экрана: " & CurrVFreq & " Гц " & sFreqtype'Заполнение списка режимовEnumDisplay lstmodesEnd SubPrivate Sub EnumDisplay(displaylistbox As ListBox)Dim lTemp As Long, tDevMode As DEVMODE, lIndex As LonglIndex = 0Do lTemp = EnumDisplaySettings(0&, lIndex, tDevMode) If lTemp = 0 Then Exit Do With tDevMode displaylistbox.AddItem .dmPelsWidth & " x " & .dmPelsHeight & " , " & .dmBitsPerPel & " бит" End With lIndex = lIndex + 1LoopEnd SubПриложение 5 (листинг модуля окна тестирования дисков)Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPrivate Declare Function GetLogicalDrives Lib "kernel32" () As LongPrivate Declare Function GetTickCount Lib "kernel32" () As LongDim TStart As Long 'переменная таймера только для этой процедурыDim TEnd As Long 'переменная таймера только для этой процедурыDim Zapis(9) As SingleDim Chten(9) As SingleDim AStart As SingleDim AEnd As SinglePrivate Sub Command1_Click()Dim i As Long, j As Byte, Tmp As Single, Str1 As StringIf MainForm.NumDrive = 3 Then AStart = GetTickCount() For j = 0 To 9 TStart = GetTickCount() Open Combo1.Text & "\proba.txt" For Output As 1 For i = 0 To 349524 Print #1, " " Next i Close 1 TEnd = GetTickCount() Zapis(j) = 1 / ((TEnd - TStart) / 2000) Next j For i = 0 To 9 Tmp = Tmp + Zapis(i) Next i Tmp = Tmp / 10 Label1.Caption = "Средняя скорость записи " & FormatNumber(Tmp, 3) & " Мб/сек" ProgressBar1.Value = Tmp For j = 0 To 9 TStart = GetTickCount() Open Combo1.Text & "\proba.txt" For Input As 1 Str1 = Len(Input(LOF(1), 1)) Close 1 TEnd = GetTickCount() Chten(j) = 1 / ((TEnd - TStart) / 1000) Next j For i = 0 To 9 Tmp = Tmp + Chten(i) Next i Tmp = Tmp / 10 Label2.Caption = "Средняя скорость чтения " & FormatNumber(Tmp, 3) & " Мб/сек" ProgressBar2.Value = Tmp AEnd = GetTickCount() Label3.Caption = "Общее время теста: " & FormatNumber(((AEnd - AStart) / 1000), 4) & " секунд" Label4.Caption = "Кол-во тестов: 10 на запись, 10 на чтение"End IfIf MainForm.NumDrive = 2 Then ProgressBar1.Max = 80 ProgressBar2.Max = 80 AStart = GetTickCount() TStart = GetTickCount() Open Combo1.Text & "\proba.txt" For Output As 1 For i = 0 To 349524 Print #1, " " Next i Close 1 TEnd = GetTickCount() Label1.Caption = "Cкорость записи " & FormatNumber(1 / ((TEnd - TStart) / 1000000), 3) & " Kb/sec" ProgressBar1.Value = 1 / ((TEnd - TStart) / 1000000)For j = 0 To 3 TStart = GetTickCount() Open Combo1.Text & "\proba.txt" For Input As 1 Str1 = Len(Input(LOF(1), 1)) Close 1 TEnd = GetTickCount() Chten(j) = 1 / ((TEnd - TStart) / 10000)Next jFor i = 0 To 3 Tmp = Tmp + Chten(i)Next iTmp = Tmp / 10AEnd = GetTickCount()Label2.Caption = "Средняя скорость чтения " & FormatNumber(Tmp, 3) & " Мб/сек"Label3.Caption = "Общее время теста: " & FormatNumber(((AEnd - AStart) / 1000), 4) & " секунд"ProgressBar2.Value = TmpLabel4.Caption = "Кол-во тестов: 1 на запись, 4 на чтение"End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim i As Byte, drivetype As Long, k As ByteFillCombo Combo1, TrueFor i = 0 To Combo1.ListCount - 1 Combo1.ListIndex = i drivetype = GetDriveType(Combo1.Text + "\") If drivetype = MainForm.NumDrive Then Combo1.AddItem Combo1.Text: k = k + 1Next iFor i = 0 To Combo1.ListCount - k - 1 Combo1.RemoveItem 0Next iCombo1.ListIndex = 0Call Command1_ClickEnd SubPrivate Sub FillCombo(cbo As ComboBox, ByVal bUsed As Boolean)Dim DriveNum As Longcbo.ClearFor DriveNum = 0 To 25 If CBool(GetLogicalDrives And (2 ^ DriveNum)) = bUsed Then cbo.AddItem Chr$(Asc("A") + DriveNum) & ":" End IfNext DriveNumEnd Sub
Страницы: 1, 2, 3, 4, 5, 6, 7
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|