08
2012
06

获取计算机硬件信息的VB.NET代码范例

得到显示器分辨率


   本文相关代码如下:
Dim X As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
Dim Y As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
MsgBox("您的显示器分辨率是:" & X & " X " & Y)


得到特殊文件夹的路径


   本文相关代码如下:
'"Desktop"桌面文件夹路径
MsgBox(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory))
'"Favorites"收藏夹路径
MsgBox(Environment.GetFolderPath(Environment.SpecialFolder.Favorites))
'"Application Data"路径
MsgBox(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
'通用写法
'Dim SPEC As String = Environment.GetFolderPath(Environment.SpecialFolder.XXXXXXX)
'XXXXXXX是特殊文件夹的名字


得到操作系统版本信息


   本文相关代码如下:
MsgBox(Environment.OSVersion.ToString)


得到当前登录的用户名


   本文相关代码如下:
MsgBox(Environment.UserName)


得到当前应用程序的路径


   本文相关代码如下:
MsgBox(Environment.CurrentDirectory)


打开和关闭CD-ROM


   本文相关代码如下:
'先新建模块
Module mciAPIModule
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
End Module
'打开CD-ROM
Dim lRet As Long
lRet = mciSendString("set cdAudio door open", 0&, 0, 0)
'关闭CD-ROM
Dim lRet As Long
lRet = mciSendString("set cdAudio door Closed", 0&, 0, 0)
'更多请参见
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mmcmdstr_8eyc.asp


得到计算机IP和计算机全名


   本文相关代码如下:
Dim MYIP As System.Net.IPHostEntry = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName)
MsgBox("您的IP地址:" & (MYIP.AddressList.GetValue(0).ToString))
MsgBox("您的计算机全名:" & (MYIP.HostName.ToString))


使用win32_operatingSystem (wmi Class)得到计算机信息


   本文相关代码如下:
'添加ListBox在Form1_Load事件里,并引用system.Managment
Dim opSearch As New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
Dim opInfo As ManagementObject
For Each opInfo In opSearch.Get()
ListBox1.Items.Add("Name: " & opInfo("name").ToString())
ListBox1.Items.Add("Version: " & opInfo("version").ToString())
ListBox1.Items.Add("Manufacturer: " & opInfo("manufacturer").ToString())
ListBox1.Items.Add("Computer name: " & opInfo("csname").ToString())
ListBox1.Items.Add("Windows Directory: " & opInfo("windowsdirectory").ToString())
Next


列出计算机安装的全部字体,并添加到ListBox


   本文相关代码如下:
'新建Form并添加ListBox和Button
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fntCollection As InstalledFontCollection = New InstalledFontCollection()
Dim fntFamily() As FontFamily
fntFamily = fntCollection.Families
ListBox1.Items.Clear()
Dim i As Integer = 0
For i = 0 To fntFamily.Length - 1
ListBox1.Items.Add(fntFamily(i).Name)
Next
End Sub


使用Win32_Processor列出处理器的信息


   本文相关代码如下:
Imports System.Management
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
  MyBase.New()
  '该调用是 Windows 窗体设计器所必需的。
  InitializeComponent()
  '在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  If disposing Then
    If Not (components Is Nothing) Then
      components.Dispose()
    End If
  End If
  MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  Me.ListBox1 = New System.Windows.Forms.ListBox
  Me.Button1 = New System.Windows.Forms.Button
  Me.SuspendLayout()
  '
  'ListBox1
  '
  Me.ListBox1.Location = New System.Drawing.Point(8, 8)
  Me.ListBox1.Name = "ListBox1"
  Me.ListBox1.Size = New System.Drawing.Size(280, 186)
  Me.ListBox1.TabIndex = 0
  '
  'Button1
  '
  Me.Button1.Location = New System.Drawing.Point(56, 208)
  Me.Button1.Name = "Button1"
  Me.Button1.Size = New System.Drawing.Size(168, 32)
  Me.Button1.TabIndex = 1
  Me.Button1.Text = "装载计算机处理器信息"
  '
  'Form1
  '
  Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  Me.ClientSize = New System.Drawing.Size(296, 254)
  Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.ListBox1})
  Me.Text = "计算机处理器信息"
  Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click
  Dim ProcQuery As New SelectQuery("Win32_Processor")
  Dim ProcSearch As New ManagementObjectSearcher(ProcQuery)
  Dim ProcInfo As ManagementObject
  For Each ProcInfo In ProcSearch.Get()
    Call processorfamily(ProcInfo("Family").ToString)
    ListBox1.Items.Add("Description: " & ProcInfo("Description").ToString())
    ListBox1.Items.Add("caption: " & ProcInfo("caption").ToString())
    ListBox1.Items.Add("Architecture: " & ProcInfo("Architecture").ToString())
    Call processortype(ProcInfo("ProcessorType").ToString())
    Call CpuStat(ProcInfo("CpuStatus").ToString)
    ListBox1.Items.Add("MaxClockSpeed: " & ProcInfo("MaxClockSpeed").ToString() & "MHZ")
    ListBox1.Items.Add("L2CacheSpeed: " & ProcInfo("L2CacheSpeed").ToString() & "MHZ")
    ListBox1.Items.Add("ExtClock: " & ProcInfo("L2CacheSpeed").ToString() & "MHZ")
    ListBox1.Items.Add("ProcessorId: " & ProcInfo("ProcessorId").ToString())
    ListBox1.Items.Add("AddressWidth: " & ProcInfo("AddressWidth").ToString() & "Bits")
    ListBox1.Items.Add("DataWidth: " & ProcInfo("DataWidth").ToString() & "Bits")
    ListBox1.Items.Add("Version: " & ProcInfo("Version").ToString())
    ListBox1.Items.Add("ExtClock: " & ProcInfo("ExtClock").ToString() & "MHZ")
  Next
End Sub
Function processorfamily(ByVal procssfam)
  Dim processtype
  Select Case procssfam
    Case 1
      processtype = "Other"
    Case 2
      processtype = "Unknown "
    Case 3
      processtype = "8086 "
    Case 4
      processtype = "80286 "
    Case 5
      processtype = "80386 "
    Case 6
      processtype = "80486 "
    Case 7
      processtype = "8087 "
    Case 8
      processtype = "80287 "
    Case 9
      processtype = "80387 "
    Case 10
      processtype = "80487 "
    Case 11
      processtype = "Pentium brand "
    Case 12
      processtype = "Pentium Pro "
    Case 13
      processtype = "Pentium II "
    Case 14
      processtype = "Pentium processor with MMX technology "
    Case 15
      processtype = "Celeron "
    Case 16
      processtype = "Pentium II Xeon "
    Case 17
      processtype = "Pentium III "
    Case 18
      processtype = "M1 Family "
    Case 19
      processtype = "M2 Family "
    Case 24
      processtype = "K5 Family "
    Case 25
      processtype = "K6 Family "
    Case 26
      processtype = "K6-2 "
    Case 27
      processtype = "K6-3 "
    Case 28
      processtype = "AMD Athlon Processor Family "
    Case 29
      processtype = "AMD Duron Processor "
    Case 30
      processtype = "AMD2900 Family "
    Case 31
      processtype = "K6-2+ "
    Case 32
      processtype = "Power PC Family "
    Case 33
      processtype = "Power PC 601 "
    Case 34
      processtype = "Power PC 603 "
    Case 35
      processtype = "Power PC 603+ "
    Case 36
      processtype = "Power PC 604 "
    Case 37
      processtype = "Power PC 620 "
    Case 38
      processtype = "Power PC X704 "
    Case 39
      processtype = "Power PC 750 "
    Case 48
      processtype = "Alpha Family "
    Case 49
      processtype = "Alpha 21064 "
    Case 50
      processtype = "Alpha 21066 "
    Case 51
      processtype = "Alpha 21164 "
    Case 52
      processtype = "Alpha 21164PC "
    Case 53
      processtype = "Alpha 21164a "
    Case 54
      processtype = "Alpha 21264 "
    Case 55
      processtype = "Alpha 21364 "
    Case 64
      processtype = "MIPS Family "
    Case 65
      processtype = "MIPS R4000 "
    Case 66
      processtype = "MIPS R4200 "
    Case 67
      processtype = "MIPS R4400 "
    Case 68
      processtype = "MIPS R4600 "
    Case 69
      processtype = "MIPS R10000 "
    Case 80
      processtype = "SPARC Family "
    Case 81
      processtype = "SuperSPARC "
    Case 82
      processtype = "microSPARC II "
    Case 83
      processtype = "microSPARC IIep "
    Case 84
      processtype = "UltraSPARC "
    Case 85
      processtype = "UltraSPARC II "
    Case 86
      processtype = "UltraSPARC IIi "
    Case 87
      processtype = "UltraSPARC III "
    Case 88
      processtype = "UltraSPARC IIIi "
    Case 96
      processtype = "68040 "
    Case 97
      processtype = "68xxx Family "
    Case 98
      processtype = "68000 "
    Case 99
      processtype = "68010 "
    Case 100
      processtype = "68020 "
    Case 101
      processtype = "68030 "
    Case 112
      processtype = "Hobbit Family "
    Case 120
      processtype = "Crusoe TM5000 Family "
    Case 121
      processtype = "Crusoe TM3000 Family "
    Case 128
      processtype = "Weitek "
    Case 130
      processtype = "Itanium Processor "
    Case 144
      processtype = "PA-RISC Family "
    Case 145
      processtype = "PA-RISC 8500 "
    Case 146
      processtype = "PA-RISC 8000 "
    Case 147
      processtype = "PA-RISC 7300LC "
    Case 148
      processtype = "PA-RISC 7200 "
    Case 149
      processtype = "PA-RISC 7100LC "
    Case 150
      processtype = "PA-RISC 7100 "
    Case 160
      processtype = "V30 Family "
    Case 176
      processtype = "Pentium III Xeon "
    Case 177
      processtype = "Pentium III Processor with Intel SpeedStep Technology "
    Case 178
      processtype = "Pentium 4 "
    Case 179
      processtype = "Intel Xeon "
    Case 180
      processtype = "AS400 Family "
    Case 181
      processtype = "Intel Xeon processor MP "
    Case 182
      processtype = "AMD AthlonXP Family "
    Case 183
      processtype = "AMD AthlonMP Family "
    Case 184
      processtype = "Intel Itanium 2 "
    Case 185
      processtype = "AMD Opteron Family "
    Case 190
      processtype = "K7 "
    Case 200
      processtype = "IBM390 Family "
    Case 201
      processtype = "G4 "
    Case 202
      processtype = "G5 "
    Case 250
      processtype = "i860 "
    Case 251
      processtype = "i960 "
    Case 260
      processtype = "SH-3 "
    Case 261
      processtype = "SH-4 "
    Case 280
      processtype = "ARM "
    Case 281
      processtype = "StrongARM "
    Case 300
      processtype = "6x86 "
    Case 301
      processtype = "MediaGX "
    Case 302
      processtype = "MII "
    Case 320
      processtype = "WinChip "
    Case 350
      processtype = "DSP "
    Case 500
      processtype = "Video Processor "
  End Select
  ListBox1.Items.Add("Family: " & processtype)
End Function
Function CpuStat(ByVal CpuStNUM)
  Dim stat
  Select Case CpuStNUM
    Case 0
      stat = "Unknown "
    Case 1
      stat = "CPU Enabled "
    Case 2
      stat = "CPU Disabled by User via BIOS Setup "
    Case 3
      stat = "CPU Disabled By BIOS (POST Error) "
    Case 4
      stat = "CPU is Idle "
    Case 5
      stat = "Reserved "
    Case 6
      stat = "Reserved "
    Case 7
      stat = "Other "
  End Select
  ListBox1.Items.Add("CpuStatus: " & stat)
End Function
Function processortype(ByVal proctypenum)
  Dim proctype
  Select Case proctypenum
    Case 1
      proctype = "Other "
    Case 2
      proctype = "Unknown "
    Case 3
      proctype = "Central Processor "
    Case 4
      proctype = "Math Processor "
    Case 5
      proctype = "DSP Processor "
    Case 6
      proctype = "Video Processor "
  End Select
  ListBox1.Items.Add("Processor Type: " & proctype)
End Function
End Class


得到CD-ROM信息


   本文相关代码如下:
Imports System.Management
Public Class Form1
  Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
  MyBase.New()
  '该调用是 Windows 窗体设计器所必需的。
  InitializeComponent()
  '在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  If disposing Then
    If Not (components Is Nothing) Then
      components.Dispose()
    End If
  End If
  MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Private components As System.ComponentModel.IContainer
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  Me.ListBox1 = New System.Windows.Forms.ListBox
  Me.SuspendLayout()
  '
  'ListBox1
  '
  Me.ListBox1.Location = New System.Drawing.Point(24, 16)
  Me.ListBox1.Name = "ListBox1"
  Me.ListBox1.Size = New System.Drawing.Size(416, 173)
  Me.ListBox1.TabIndex = 0
  '
  'Form1
  '
  Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  Me.ClientSize = New System.Drawing.Size(456, 206)
  Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ListBox1})
  Me.Name = "Form1"
  Me.Text = "Form1"
  Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles MyBase.Load
  On Error Resume Next
  Dim SoundDeviceQuery As New SelectQuery("Win32_CDROMDrive")
  Dim SoundDeviceSearch As New ManagementObjectSearcher(SoundDeviceQuery)
  Dim SoundDeviceInfo As ManagementObject
  For Each SoundDeviceInfo In SoundDeviceSearch.Get()
    Dim SizeInMBs As Long = (Val(SoundDeviceInfo("Size").ToString()))
    SizeInMBs = Int((SizeInMBs / (1024 * 1024)))
    ListBox1.Items.Add("CD-Rom Description: " & SoundDeviceInfo("caption").ToString())
    ListBox1.Items.Add("CD-Rom Manufacturer: " & SoundDeviceInfo("Manufacturer").ToString())
    ListBox1.Items.Add("CD-Rom Drive: " & SoundDeviceInfo("drive").ToString())
    ListBox1.Items.Add("CD-Rom Media Loaded: " & SoundDeviceInfo("MediaLoaded").ToString())
    ListBox1.Items.Add("CD-Rom Media Type: " & SoundDeviceInfo("MediaType").ToString())
    ListBox1.Items.Add("CD-Rom Volume Name: " & SoundDeviceInfo("VolumeName").ToString())
    ListBox1.Items.Add("CD-Rom Size: " & SizeInMBs & " MBytes")
    ListBox1.Items.Add("CD-Rom Status: " & SoundDeviceInfo("Status").ToString())
    ListBox1.Items.Add("CD-Rom MaxMediaSize: " & SoundDeviceInfo("MaxMediaSize").ToString())
    ListBox1.Items.Add("CD-Rom Id: " & SoundDeviceInfo("Id").ToString())
    ListBox1.Items.Add("CD-Rom TransferRate: "+Int(SoundDeviceInfo("TransferRate").ToString())+" KBs/秒")
  Next
End Sub
End Class


得到硬盘信息


   本文相关代码如下:
Imports System.Management
Public Class Form1
  Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
  MyBase.New()
  InitializeComponent()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  If disposing Then
    If Not (components Is Nothing) Then
      components.Dispose()
    End If
  End If
  MyBase.Dispose(disposing)
End Sub
Private components As System.ComponentModel.IContainer
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  Me.ListBox1 = New System.Windows.Forms.ListBox
  Me.SuspendLayout()
  '
  'ListBox1
  '
  Me.ListBox1.Location = New System.Drawing.Point(8, 8)
  Me.ListBox1.Name = "ListBox1"
  Me.ListBox1.Size = New System.Drawing.Size(272, 212)
  Me.ListBox1.TabIndex = 0
  '
  'Form1
  '
  Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  Me.ClientSize = New System.Drawing.Size(292, 238)
  Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ListBox1})
  Me.Name = "Form1"
  Me.Text = "Form1"
  Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  On Error Resume Next
  Dim HDDDeviceQuery As New SelectQuery("Win32_DiskDrive")
  Dim HDDDeviceSearch As New ManagementObjectSearcher(HDDDeviceQuery)
  Dim HDDDeviceInfo As ManagementObject
  For Each HDDDeviceInfo In HDDDeviceSearch.Get()
    ListBox1.Items.Add("HDD Description: " & HDDDeviceInfo("caption").ToString())
    ListBox1.Items.Add("HDD BytesPerSector: " & HDDDeviceInfo("BytesPerSector").ToString())
    ListBox1.Items.Add("HDD CompressionMethod: " & HDDDeviceInfo("CompressionMethod").ToString())
    ListBox1.Items.Add("HDD Index: " & HDDDeviceInfo("Index").ToString())
    ListBox1.Items.Add("HDD InstallDate: " & HDDDeviceInfo("InstallDate").ToString())
    ListBox1.Items.Add("HDD Manufacturer: " & HDDDeviceInfo("Manufacturer").ToString())
    ListBox1.Items.Add("HDD Partitions: " & HDDDeviceInfo("Partitions").ToString())
    ListBox1.Items.Add("HDD Size: " & Int(Val(HDDDeviceInfo("Size").ToString()) / 2 ^ 30) & "  GBytes")
    ListBox1.Items.Add("HDD TotalCylinders: " & HDDDeviceInfo("TotalCylinders").ToString())
    ListBox1.Items.Add("HDD TotalSectors: " & HDDDeviceInfo("TotalSectors").ToString())
    ListBox1.Items.Add("HDD TracksPerCylinder: " & HDDDeviceInfo("TracksPerCylinder").ToString())
    ListBox1.Items.Add("HDD TotalHeads: " & HDDDeviceInfo("TotalHeads").ToString())
    ListBox1.Items.Add("HDD TotalTracks: " & HDDDeviceInfo("TotalTracks").ToString())
    ListBox1.Items.Add("HDD SectorsPerTrack: " & HDDDeviceInfo("SectorsPerTrack").ToString())
    ListBox1.Items.Add("HDD SCSILogicalUnit: " & HDDDeviceInfo("SCSILogicalUnit").ToString())
  Next
End Sub
End Class


得到声卡信息


   本文相关代码如下:
Imports System.Management
Public Class Form1
  Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
  MyBase.New()
  InitializeComponent()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  If disposing Then
    If Not (components Is Nothing) Then
      components.Dispose()
    End If
  End If
  MyBase.Dispose(disposing)
End Sub
Private components As System.ComponentModel.IContainer
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  Me.ListBox1 = New System.Windows.Forms.ListBox
  Me.SuspendLayout()
  '
  'ListBox1
  '
  Me.ListBox1.Location = New System.Drawing.Point(8, 8)
  Me.ListBox1.Name = "ListBox1"
  Me.ListBox1.Size = New System.Drawing.Size(272, 212)
  Me.ListBox1.TabIndex = 0
  '
  'Form1
  '
  Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  Me.ClientSize = New System.Drawing.Size(292, 238)
  Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.ListBox1})
  Me.Name = "Form1"
  Me.Text = "Form1"
  Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim SoundDeviceQuery As New SelectQuery("Win32_SoundDevice")
  Dim SoundDeviceSearch As New ManagementObjectSearcher(SoundDeviceQuery)
  Dim SoundDeviceInfo As ManagementObject
  For Each SoundDeviceInfo In SoundDeviceSearch.Get()
    ListBox1.Items.Add("Sound Device Description: " & SoundDeviceInfo("Caption").ToString())
    ListBox1.Items.Add("Sound Device Status: " & SoundDeviceInfo("status").ToString())
    ListBox1.Items.Add("Sound Device Manufacturer: " & SoundDeviceInfo("Manufacturer").ToString())
  Next
End Sub
End Class
 
 

 

 收钱码.jpg

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。