VB.NET中得到计算机硬件信息

本文汇集了在.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
    
    
   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
    
    
   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
    
    
   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
    
    
   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
    
    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C是一种高级的编程语言,它由Dennis Ritchie在20世纪70年代初开发。C是一种通用的,结构化的编程语言,它广泛应用于系统程序设计和应用程序开发。它是一种非常强大和灵活的语言,具有高效的执行速度和低层次的硬件访问能力。 C语言是一种面向过程的编程语言,它提供了许多功能来处理输入和输出,包括文件读写和网络通信。C语言还具有丰富的基本数据类型,如整数,字符和浮点数,并提供了丰富的运算符和控制结构,如条件语句和循环语句,以帮助开发人员实现各种算法和逻辑。 C语言的主要特点是它的可移植性,这意味着一个C程序可以在多种平台上编译和执行,而不需要进行大量的修改。这使得C语言非常适用于开发跨平台的软件和系统。另外,C语言还提供了许多库函数和API,可以方便地处理字符串,内存管理,数学计算和图形界面等方面的任务。 由于其简洁性和效率,C语言被广泛用于操作系统,编译器,数据库系统,网络协议栈和图形用户界面等关键系统和应用程序的开发。许多其他编程语言,如C++,Java和Python,都是在C语言的基础上发展而来的。 总之,C语言是一种强大而灵活的编程语言,具有可移植性和高效性。它在计算机科学和软件工程领域具有广泛的应用,并继续为开发人员提供编写高效和高质量代码的工具。无论是初学者还是专业人士,学习和掌握C语言都是非常有利的。 ### 回答2: c是指针变量,它用于存储内存地址。在C语言,我们可以使用指针来访问和操作内存的数据。通过指针,我们可以动态地分配和释放内存,实现数据的共享和传递。 在C语言,我们使用星号*来声明一个指针变量,如int *p;表示声明了一个名为p的指向整型数据的指针变量。我们可以通过&p来获取变量的地址,如int a; int *p = &a;表示将变量a的地址赋给指针变量p。 使用指针变量,我们可以通过*p来访问指针所指向的数据,如int a = 5; int *p = &a; printf("%d", *p);会输出变量a的值5。当我们想修改指针所指向的值时,可以通过*p = 10;来实现,即将指针所指向的值修改为10。 除了基本数据类型,指针还可以指向数组、结构体和函数等。例如,int arr[5] = {1, 2, 3, 4, 5}; int *p = arr;表示将指针p指向数组arr的第一个元素。 此外,指针之间也可以进行赋值和比较操作。我们可以使用指针运算符+和-来进行指针的移动,如p += 1;表示将指针p移动到下一个位置。 指针在C语言具有重要的作用,它能够提高程序的效率和灵活性。然而,指针的使用也需要注意,避免出现空指针、越界访问和野指针等问题,以确保程序的安全性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值