Конфигурация аппаратных средств
Рефераты >> Информатика >> Конфигурация аппаратных средств

Next

End Sub

Private Sub Command4_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "Информация о дисках."

End Sub

Private Sub Command5_Click()

Call B_Text(5)

End Sub

Private Sub Command5_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "Информация о установленных адаптерах (звук, видео, модем и т.д.)."

End Sub

Private Sub Command6_Click()

Call B_Text(6)

End Sub

Private Sub Command6_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "Информация о устройствах ввода/вывода (монитор, клавиатура, принтер и т.д.)."

End Sub

Sub B_Text(Comm As Integer)

Select Case Comm

Case 2

l = 0

k = k0

Case 5

l = 2

k = k2

Case 6

l = 1

k = k1

End Select

For i = 1 To k

s$ = s$ + (Sv(l, i) & vbCrLf)

Next i

Box1 = s$

End Sub

Код формы Progress(Pr.frm):

Private Sub Form_Load()

DrawWidth = 3

End Sub

Код модуля Module1(Hwm.bas):

Public Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long

Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Public 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

Public Sv(2, 1000) As String

Public Coproc As Boolean

Public X1, X2, Y1, dX As Integer

Public k0 As Integer

Public k1 As Integer

Public k2 As Integer

Public Const HK$ = "HKEY_LOCAL_MACHINE"

Public cpuspd As Long

Public FF As Boolean

Public Drives(100) As String

Public n

Public Ka

Public vSerialNum(100) As Long

Public vCompLen(100) As Long

Public vFlags(100) As Long

Public vSysBuff(100) As String

Public vSysSize(100) As Long

Public SecsPerClus(100) As Long

Public BytesPerSec(100) As Long

Public NumOfFreeClus(100) As Long

Public TotalNumOfClus(100) As Long

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:\WINDOWS\INF")

mDDir(0) = "C:\Windows\INF\"

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:\Windows\INF\" + mDDir(j) + "\*.inf")

While mDir1 <> ""

a = a + 1

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

mDir1 = Dir()

Wend

Next j

mDir1 = Dir("C:\WINDOWS\INF\*.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$ = "\0000"

For i = 0 To 1999

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

tmp1 = Len(tmp$)

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

SubK$ = "System\CurrentControlSet\Services\Class\" + 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$ = "System\CurrentControlSet\Services\Class\" + 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$ = "System\CurrentControlSet\Services\Class\" + DClass + Nm

On Error GoTo NoMD

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


Страница: