"Говорите тожно сколько вешать в граммах"
То есть о каком железе речь идет
В реестре есть ветвь [B]HKEY_LOCAL_MACHINE\HARDWARE[/B]
От нее и исследуй...
--------------------------------------------------------------------------------
Как получить информацию об операционной системе при помощи 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
'/* Размер каждой колонки основан на длине текста в заголовке
'/* столбца. Если последующая строка шире, то вся колонка
'/* подстраивается под эту ширину
For col2adjust = 0 To lv.ColumnHeaders.Count - 1
Private Function SplitDateTimeBias(ByVal leasedate As String, _
leasedatepart As String, _
leasetimepart As String) As Long
'получаем дату и время при помощи
'Win32_NetworkAdapterConfiguration
'и разделяем на компоненты даты и времени, возвращиемые в
'переменных leasedatepart и leasetimepart
 im pos As Long
 im bias As Long
'страна, язык, временная зона
Set itmx = ListView1.ListItems.Add(, , "OSLanguage"
itmx.SubItems(1) = obj.OSLanguage
Set itmx = ListView1.ListItems.Add(, , "CodeSet"
itmx.SubItems(1) = obj.CodeSet
Set itmx = ListView1.ListItems.Add(, , "Locale"
itmx.SubItems(1) = obj.Locale
Set itmx = ListView1.ListItems.Add(, , "CountryCode"
itmx.SubItems(1) = obj.CountryCode
Set itmx = ListView1.ListItems.Add(, , "CurrentTimeZone"
itmx.SubItems(1) = obj.CurrentTimeZone
'информация о использовании памяти
Set itmx = ListView1.ListItems.Add(, , "ForegroundApplicationBoost"
Select Case obj.ForegroundApplicationBoost
Case 0: msg = "none"
Case 1: msg = "minimum"
Case 2: msg = "maximum (default)"
End Select
itmx.SubItems(1) = msg
Set itmx = ListView1.ListItems.Add(, , "TotalVisibleMemorySize"
itmx.SubItems(1) = FormatNumber(obj.TotalVisibleMemorySize, 0)
Set itmx = ListView1.ListItems.Add(, , "FreePhysicalMemory"
itmx.SubItems(1) = FormatNumber(obj.FreePhysicalMemory, 0)
Set itmx = ListView1.ListItems.Add(, , "TotalVirtualMemorySize"
itmx.SubItems(1) = FormatNumber(obj.TotalVirtualMemorySize, 0)
Set itmx = ListView1.ListItems.Add(, , "FreeVirtualMemory"
itmx.SubItems(1) = FormatNumber(obj.FreeVirtualMemory, 0)
Set itmx = ListView1.ListItems.Add(, , "FreeSpaceInPagingFiles"
itmx.SubItems(1) = FormatNumber(obj.FreeSpaceInPagingFiles, 0)
Set itmx = ListView1.ListItems.Add(, , "SizeStoredInPagingFiles"
itmx.SubItems(1) = FormatNumber(obj.SizeStoredInPagingFiles, 0)
Next
End Sub
Ниже приведена вся информация, возвращаемая классом Win32_OperatingSystem (некоторые операционные системы могут возвращать не всю информацию, предесмотренную данным классом):