ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > Excel VBA > 提取硬件信息

提取硬件信息

作者:绿色风 分类: 时间:2022-08-17 浏览:142
楼主
罗刚君
  1. Sub 主板序列号()
  2.     Dim objs As Object, Obj As Object, WMI As Object, 主板序列号
  3.     Set WMI = GetObject("WinMgmts:")
  4.     Set objs = WMI.InstancesOf("Win32_BaseBoard")
  5.     For Each Obj In objs
  6.         MsgBox "您的主板序列号是:" + Obj.SerialNumber
  7.     Next
  8. End Sub

可能某些操作系统无法获取成功

 
2楼
罗刚君
  1. Sub 显卡信息()
  2.     On Error Resume Next
  3.     Dim tmp1, tmp2
  4.     Set tmp2 = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_VideoController")
  5.     For Each tmp1 In tmp2
  6.         MsgBox "型 号: " & tmp1.VideoProcessor & vbCrLf & "厂 商: " & tmp1.AdapterCompatibility & vbCrLf & "名 称: " & tmp1.Name & vbCrLf & "状 态: " & tmp1.Status & vbCrLf & "显 存: " & (tmp1.AdapterRAM \ 1024000) & "MB" & vbCrLf & "驱 动(dll): " & tmp1.InstalledDisplayDrivers & vbCrLf & "驱 动(inf): " & tmp1.infFilename & vbCrLf & "版 本: " & tmp1.DriverVersion
  7.     Next
  8. End Sub


 
3楼
罗刚君
  1. Sub 网卡MAC()
  2. Dim 网卡
  3. Set 网卡 = GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
  4. For Each 地址 In 网卡
  5. If 地址.IPEnabled = True Then
  6. MsgBox "网卡MAC地址: " & 地址.MacAddress
  7. Exit For
  8. End If
  9. Next
  10. End Sub
4楼
罗刚君
  1. Sub 硬盘型号()
  2. Dim 硬盘
  3. Set 硬盘 = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
  4. For Each mo In 硬盘
  5. MsgBox "硬盘型号为:" & mo.Model
  6. Next
  7. End Sub
5楼
罗刚君
  1. Sub 硬盘型号()
  2. Dim 硬盘
  3. Set 硬盘 = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
  4. For Each mo In 硬盘
  5. MsgBox "硬盘型号为:" & mo.Model
  6. Next
  7. End Sub
6楼
罗刚君
  1. Sub CPU序列号() '特别提示:这个不是唯一的,即有可能多个CPU同一一序列号
  2. For Each 序列 In GetObject("Winmgmts:").InstancesOf("Win32_Processor")
  3. MsgBox "CPU 序列号: " & CStr(序列.ProcessorId)
  4. Next
  5. End Sub
7楼
罗刚君
  1. Sub 所有进程()
  2. Set objs = GetObject("WinMgmts:").InstancesOf("Win32_Process")
  3. For Each obj In objs
  4. tmp = tmp & WorksheetFunction.Text(a + 1, "[DBNum2][$-804]0:  ") + vbTab + obj.Description + Chr(13)
  5. a = a + 1
  6. Next
  7. MsgBox tmp, 65, "提示你哦"
  8. End Sub
8楼
罗刚君
  1. Sub 所有进程()
  2. Set objs = GetObject("WinMgmts:").InstancesOf("Win32_Process")
  3. For Each obj In objs
  4. tmp = tmp & WorksheetFunction.Text(a + 1, "[DBNum2][$-804]0:  ") + vbTab + obj.Description + Chr(13)
  5. a = a + 1
  6. Next
  7. MsgBox tmp, 65, "提示你哦"
  8. End Sub
9楼
罗刚君
  1. Sub IP地址()
  2.    ComputerName = "localhost"
  3.    Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate}//" & ComputerName).ExecQuery("SELECT index, IPAddress FROM Win32_NetworkAdapterConfiguration")
  4.    For Each OpSys In OpSysSet
  5.       If TypeName(OpSys.IPAddress) <> "Null" Then
  6.          For Each IP In OpSys.IPAddress
  7.             MsgBox IP, 64, "IP地址"
  8.          Next
  9.       End If
  10.    Next
  11. End Sub
10楼
罗刚君
  1. MsgBox "Excel用户名:" + Application.UserName + Chr(10) + "WINDOWS用户名:" + Environ("username")
11楼
罗刚君
  1. Sub 进程详情()
  2.     Dim aa(), counts As Byte, i As Integer, xProcesses As Object
  3.     Set xProcesses = GetObject("WinMgmts:").InstancesOf("Win32_Process")
  4.     counts = xProcesses.Count + 1
  5.     i = 2
  6.     ReDim Preserve aa(1 To counts, 1 To 5)
  7.     aa(1, 1) = "进程": aa(1, 2) = "用户": aa(1, 3) = "进程ID": aa(1, 4) = "内存": aa(1, 5) = "路径"
  8.     For Each xProcess In xProcesses
  9.         With xProcess
  10.             If .GetOwner(user, Domain) = 0 Then
  11.                 aa(i, 1) = .Caption: aa(i, 2) = user: aa(i, 3) = .ProcessID: aa(i, 4) = .WorkingSetSize / 1024: aa(i, 5) = .ExecutablePath
  12.             Else
  13.                 aa(i, 1) = .Caption: aa(i, 2) = "": aa(i, 3) = .ProcessID: aa(i, 4) = .WorkingSetSize / 1024: aa(i, 5) = .ExecutablePath
  14.             End If
  15.         End With
  16.         i = i + 1
  17.     Next
  18.    Range("a1:E" & counts) = aa
  19. Range("a:e").EntireColumn.AutoFit
  20. End Sub
12楼
罗刚君
  1. Sub 获取当前正运行的程序窗口名()
  2.     Dim WD, task, n As Long
  3.     Set WD = CreateObject("WORD.Application")
  4.     For Each task In WD.Tasks
  5.         If task.Visible = True Then
  6.             n = n + 1
  7.             Cells(n, 1) = task.Name
  8.         End If
  9.     Next
  10.     Set WD = Nothing
  11. End Sub
13楼
罗刚君
  1. Sub GetIP()
  2.     Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
  3.     Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")
  4.     For Each objNetAdapter In colNetAdapters
  5.         If TypeName(objNetAdapter.IPAddress) <> "Null" Then
  6.             MsgBox "网关........:" & objNetAdapter.DefaultIPGateway(0) & Chr(13) _
  7.                          & "IP..........:" & objNetAdapter.IPAddress(0) & Chr(13) _
  8.                          & "掩码........:" & objNetAdapter.IPSubnet(0)
  9.             Exit Sub
  10.         End If
  11.     Next
  12. End Sub
14楼
罗刚君
获取所有用户名称

  1. Sub Click()
  2.     For Each obj In GetObject("winmgmts:").ExecQuery("Select name from Win32_UserAccount")
  3.         s = s & obj.Name & vbCrLf
  4.     Next
  5.     MsgBox s
  6. End Sub
15楼
罗刚君
  1. Sub 获取CDE盘的文件目录()
  2.       CreateObject("WScript.Shell").Popup CreateObject("WScript.Shell").exec("cmd.exe /c dir c:\ d:\ e:\ /ad").StdOut.ReadAll, , "显示目录"
  3. End Sub
16楼
kszcs
呵呵,全呀,收藏学习
17楼
kevinchengcw
收藏,崇拜
18楼
ngs139
无比强大,无比崇拜
19楼
wenshui2006
   学习啊,,,啊,,,,学习,, ,,,,
20楼
398829134
老师这个太强大了,需要收藏
21楼
398829134
咦,没有内存信息呢,我来补上:
  1. Sub 获取内存信息()
  2.     Dim objWMI As Object, aObjs As Object, aObj As Object, sMsg As String

  3.     Set objWMI = GetObject("winmgmts:\\")
  4.     Set aObjs = objWMI.instancesof("win32_physicalmemory")
  5.     sMsg = "内存容量:" & vbCrLf
  6.     For Each aObj In aObjs
  7.         sMsg = sMsg & aObj.Tag & Space(10) & aObj.capacity & vbCrLf
  8.     Next

  9.     Set aObjs = objWMI.instancesof("win32_computersystem")
  10.     For Each aObj In aObjs
  11.         sMsg = sMsg & "内存总容量:" & Round((aObj.totalphysicalmemory / 1024 ^ 2), 2) & "M" & vbCrLf
  12.     Next
  13.     MsgBox sMsg, vbOKOnly + vbInformation
  14. End Sub
另外,楼主上面的Word没有退出
22楼
天空真蓝/qt

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap