Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Информатика /

Конфигурация аппаратных средств

←предыдущая следующая→  
1 2 3 



Скачать реферат


Public TypeOfDrive(100) As String

Public VNBuffer(100) As String

Public VNSize(100) As Long

Public Const DRIVE_CDROM = 5

Public Const DRIVE_FIXED = 3

Public Const DRIVE_RAMDISK = 6

Public Const DRIVE_REMOTE = 4

Public Const DRIVE_REMOVABLE = 2

Sub SB_Sveden()

Dim mDir(1000), mDir1, mStr, mDDir(100) As String

Dim mClass, nClass(1000) As String

Dim s, s1 As String

Dim a As Integer

X1 = Progress.Line1.X1: X2 = Progress.Line1.X2

Y1 = Progress.Line1.Y1

ChDir ("C:WINDOWSINF")

mDDir(0) = "C:WindowsINF"

mDTMP = Dir(mDDir(0), vbDirectory)

i = 0

Do While mDTMP ""

If mDTMP "." And mDTMP ".." Then

If (GetAttr(mDDir(0) & mDTMP) And vbDirectory) = vbDirectory Then

i = i + 1: mDDir(i) = mDTMP

End If

End If

mDTMP = Dir

Loop

On Error GoTo EndFindINF

For j = 1 To i

mDir1 = Dir("C:WindowsINF" + mDDir(j) + "*.inf")

While mDir1 ""

a = a + 1

mDir(a) = mDDir(0) + mDDir(j) + "" + mDir1

mDir1 = Dir()

Wend

Next j

mDir1 = Dir("C:WINDOWSINF*.inf")

While mDir1 ""

a = a + 1

mDir(a) = mDDir(0) + mDir1

mDir1 = Dir()

Wend

EndFindINF:

Err.Clear

dX = (X2 - X1) / a

For i = 1 To a

On Error GoTo 0

Open mDir(i) For Input As #1

XE = X1 + (dX * i)

Progress.Line (X1, Y1)-(XE, Y1), &H8000000D

f = 0

sClFind:

If Not (EOF(1)) And f = 0 Then

Input #1, mClass

If Mid(mClass, 1, 5) = "Class" And (Mid(mClass, 6, 1) = "=" Or Mid(mClass, 6, 1) = " ") Then

a1 = a1 + 1: f = 1

mClass = Mid(mClass, 7)

For j = 1 To Len(mClass)

mStr = Mid(mClass, j, 1)

If mStr " " And mStr "=" And mStr Chr(34) Then nClass(a1) = nClass(a1) + mStr

Next j

For j = 1 To a1 - 1

s = StrConv(nClass(a1), vbLowerCase)

s1 = StrConv(nClass(j), vbLowerCase)

If s = s1 Then nClass(a1) = "": a1 = a1 - 1: f = 0: Exit For

Next j

If f = 1 Then

If nClass(a1) "DiskDrive" And nClass(a1) "NetClient" And nClass(a1) "NetService" And nClass(a1) "NetTrans" And nClass(a1) "CDROM" Then Call FClassCH(nClass(a1))

End If

Else: GoTo sClFind

End If

End If

Close #1

Next i

End Sub

Sub FClassCH(FClass As String)

Num$ = "000"

For i = 0 To 1999

tmp$ = Mid(Str(i), 2)

tmp1 = Len(tmp$)

Mid(Num$, 6 - tmp1, tmp1) = tmp$

SubK$ = "SystemCurrentControlSetServicesClass" + FClass + Num$

On Error GoTo NoDev

DDesc$ = HV1.RegCtrl1.RReadValue(HK$, SubK$, "DriverDesc")

On Error GoTo 0

If i = 0 Then

DD$ = " "

Call GroupDev(FClass, DD$, "")

SubK$ = "SystemCurrentControlSetServicesClass" + FClass

DD$ = HV1.RegCtrl1.RReadValue(HK$, SubK$, "")

Call GroupDev(FClass, DD$, "")

DD$ = String(70, "-")

Call GroupDev(FClass, DD$, "")

End If

If DDesc$ "Coprocessor" And DDesc$ "Сопроцессор" Then Call GroupDev(FClass, DDesc$, Num$) Else Coproc = True

NoDev: If Err 0 Then Exit For

Next i

Err.Clear

End Sub

Sub GroupDev(DClass, DDsc, Nm As String)

If DClass = "System" Or DClass = "fdc" Or DClass = "hdc" Or DClass = "Infrared" Then k0 = k0 + 1: Sv(0, k0) = DDsc: Exit Sub

If DClass = "MTD" Or DClass = "MultiFunction" Or DClass = "PCMCIA" Or DClass = "Ports" Then k0 = k0 + 1: Sv(0, k0) = DDsc: Exit Sub

If DClass = "USB" Then k0 = k0 + 1: Sv(0, k0) = DDsc: Exit Sub

If DClass = "Monitor" Or DClass = "Keyboard" Or DClass = "Mouse" Or DClass = "Printer" Then k1 = k1 + 1: Sv(1, k1) = DDsc: Exit Sub

SubK$ = "SystemCurrentControlSetServicesClass" + DClass + Nm

On Error GoTo NoMD

MDId$ = HV1.RegCtrl1.RReadValue("HKEY_LOCAL_MACHINE", SubK$, "MatchingDeviceId")

On Error GoTo 0

If Mid(MDId$, 1, 3) = "PCI" Then DDsc = "(PCI) " + DDsc

If Mid(MDId$, 1, 6) = "ISAPNP" Then DDsc = "(ISA) " + DDsc

NoMD:

k2 = k2 + 1: Sv(2, k2) = DDsc

Err.Clear

End Sub

Sub GetDiskInfo()

n = 0

For i = 65 To 90

If GetDriveType(Chr$(i) & ":" & "") 1 Then n = n + 1: Drives(n) = Chr$(i) & ":" & ""

Next i

For i = 1 To n

Call GetDiskFreeSpace(Drives(i), SecsPerClus(i), BytesPerSec(i), NumOfFreeClus(i), TotalNumOfClus(i))

Select Case GetDriveType(Drives(i))

Case DRIVE_CDROM

TypeOfDrive(i) = "CD-ROM"

Case DRIVE_REMOVABLE

TypeOfDrive(i) = "Floppy disk"

Case DRIVE_FIXED

TypeOfDrive(i) = "Hard disk drive"

Case DRIVE_RAMDISK

TypeOfDrive(i) = "Virtual disk"

Case DRIVE_REMOTE

TypeOfDrive(i) = "Net disk"

Case Else

End Select

Next

For i = 1 To n

VNBuffer(i) = Space$(255)

VNSize(i) = 255

vSysBuff(i) = Space$(255)

vSysSize(i) = 255

vFlags(i) = 0

vCompLen(i) = 255

vSerialNum(i) = 255

lRet = GetVolumeInformation(Drives(i), VNBuffer(i), VNSize(i), vSerialNum(i), vCompLen(i), vFlags(i), vSysBuff(i), vSysSize(i))

If lRet = 1 Then VNBuffer(i) = Left$(VNBuffer(i), Len(RTrim$(VNBuffer(i))) - 1): vSysBuff(i) = Left$(vSysBuff(i), Len(RTrim$(vSysBuff(i))) - 1): vSerialNum(i) = Left$(vSerialNum(i), Len(RTrim$(vSerialNum(i))) - 1)

If lRet = False Then VNBuffer(i) = "None": vSysBuff(i) = "None"

Next

End Sub

Код класса clsMemorySnapshot(Memory.cls)

Option Explicit

Private Type MEMORYSTATUS

dwLength As Long

dwMemoryLoad As Long

dwTotalPhys As Long

dwAvailPhys As Long

dwTotalPageFile As Long

dwAvailPageFile As Long

dwTotalVirtual As Double

dwAvailVirtual As Double

End Type

Private Declare Sub GlobalMemoryStatus Lib "kernel32" _

(lpBuffer As MEMORYSTATUS)

Private mmemMemoryStatus As MEMORYSTATUS

Public Property Get FreeMemory() As Long

FreeMemory = mmemMemoryStatus.dwAvailPhys

End Property

Public Property Get TotalMemory() As Long

TotalMemory = mmemMemoryStatus.dwTotalPhys

End Property

Public Property Get TotalVirtualMemory() As Double

TotalVirtualMemory = mmemMemoryStatus.dwTotalVirtual

End Property

Public Property Get AvailableVirtualMemory() As Double

AvailableVirtualMemory = mmemMemoryStatus.dwAvailVirtual

End Property

Private Sub Class_Initialize()

mmemMemoryStatus.dwLength = Len(mmemMemoryStatus)

GlobalMemoryStatus mmemMemoryStatus

End Sub

Public Sub Refresh()

GlobalMemoryStatus mmemMemoryStatus

End Sub

Заключение

Программа полностью выполнила все поставленные перед ней задачи при тестировании, что позволяет сделать вывод о её пригодности для определения конфигурации компьютера и использования в качестве дополнения к, уже имеющимся в составе операционной системы Windows , средствам получения информации об аппаратных средствах с более простым и удобным интерфейсом.

Используемая литература


←предыдущая следующая→  
1 2 3 



Copyright © 2005—2007 «Mark5»