Visual Basic Script


Как получить информацию об операционной системе при помощи WMI


Автор: Randy Birch

Компилятор: Visual Basic 5.0, 6.0

Windows Script Host встроен Microsoft Windows 98, 2000, ME и XP. Если Ваша операционная система Windows 95 или NT4, то прийдётся скачать Windows Script Host с сайта компании Microsoft http://msdn.microsoft.com/scripting/.

Демонстрационный пример показывает только часть информации, которую можно получить при помощи класса Win32_OperatingSystem WMI. В конце статьи представлена таблица, содержащая список всей доступной информации об операционной системе.

Добавьте на форму кнопку (Command1) и список (Listview1). Подключите билиотеку в Projects / References Microsoft WMI Scripting Library, и добавьте следующий код:

Option Explicit'/* следующие константы используются для изменения размеров колонок

Private Const LVM_FIRST As Long = &H1000 Private Const LVM_SETCOLUMNWIDTH As Long = (LVM_FIRST + 30) Private Const LVSCW_AUTOSIZE As Long = -1 Private Const LVSCW_AUTOSIZE_USEHEADER As Long = -2

Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" _ (ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long

Private Sub Form_Load()

With ListView1 .ListItems.Clear .ColumnHeaders.Clear .ColumnHeaders.Add , , "WMI Property" .ColumnHeaders.Add , , "Value(s)" .View = lvwReport .Sorted = False End With

Command1.Caption = "OS Info"

End Sub

Private Sub Command1_Click()

ListView1.ListItems.Clear Call wmiOperatingSystemInfo Call lvAutosizeControl(ListView1)

End Sub

Private Sub lvAutosizeControl(lv As ListView)

Dim col2adjust As Long

'/* Размер каждой колонки основан на длине текста в заголовке '/* столбца. Если последующая строка шире, то вся колонка '/* подстраивается под эту ширину

For col2adjust = 0 To lv.ColumnHeaders.Count - 1

Call SendMessage(lv.hwnd, _ LVM_SETCOLUMNWIDTH, _ col2adjust, _ ByVal LVSCW_AUTOSIZE_USEHEADER)

Next

End Sub

Private Function SplitDateTimeBias(ByVal leasedate As String, _ leasedatepart As String, _ leasetimepart As String) As Long




Начало    Вперед