ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: andysky

[分享] VBA获取您的电脑硬件信息

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-11-4 08:31 | 显示全部楼层
本帖已被收录到知识树中,索引项:WMI应用
原帖由 qhllqhll 于 2010-11-4 07:49 发表
老师您好:我试过了
您的代码得到的是C盘号
而前面的很长的代码得到的是 整个硬盘的号
请您在不忙的情况下再帮忙给修改一下此代码
谢谢



Sub 硬盘型号()
Dim 硬盘
Set 硬盘 = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
For Each mo In 硬盘
MsgBox "硬盘型号为:" & mo.Model
Next
End Sub

这段代码是整个硬盘的编号,与C盘无关

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-11-4 09:12 | 显示全部楼层
原帖由 qhllqhll 于 2010-11-4 07:10 发表
请老师帮忙 精简以下代码
谢谢
Private Const MAX_IDE_DRIVES As Long = 4   ' Max number of drives assuming primary/secondary, master/slave topology
Private Const READ_ATTRIBUTE_BUFFER_SIZE As Long = 5 ...


这么长的代码其实只用一句代码就可以实现
=GetHardDiskInfo() 用于获取型号/物理系列号(唯一)
下面一句代码同样可以获得
效率高很多

[ 本帖最后由 andysky 于 2010-11-9 09:27 编辑 ]

答案.rar

229 Bytes, 下载次数: 409

TA的精华主题

TA的得分主题

发表于 2010-11-8 09:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-11-8 16:24 | 显示全部楼层

回复 73楼 andysky 的帖子

好的谢谢
再请教老师一个问题:执行vba代码后,要想撤销!有办法吗? (代码应怎么写啊)我看查了很多都说没办法,可能是没有此功能吗?
谢谢

[ 本帖最后由 qhllqhll 于 2010-11-8 16:36 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-11-8 16:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 72楼 andysky 的帖子

老师您好:能否把检测硬盘的唯一物理序号和检测优盘的唯一序号(包括多个u盘一起检测出来) 的代码写在一起,让其自动运行而得到检测结果显示存放在工作表的单元格里吗?

TA的精华主题

TA的得分主题

发表于 2010-11-11 11:05 | 显示全部楼层
谢天谢地,原来在这里。我找了好几年

TA的精华主题

TA的得分主题

发表于 2010-12-24 07:35 | 显示全部楼层

回复 73楼 andysky 的帖子

请问老师:下面的代码怎么用啊
Sub auto_open()
MsgBox GetObject("winmgmts:").InstancesOf("Win32_PhysicalMedia")("Win32_PhysicalMedia.Tag=""\\\\.\\PHYSICALDRIVE0""").serialnumber
End Sub

[ 本帖最后由 qhllqhll 于 2010-12-24 07:37 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-12-24 07:37 | 显示全部楼层

回复 72楼 andysky 的帖子

请问老师:下面的代码怎么能改成用 “= GetHardDiskInfo()”调用啊?谢谢
Sub 硬盘型号()
Dim 硬盘
Set 硬盘 = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
For Each mo In 硬盘
MsgBox "硬盘型号为:" & mo.Model
Next
End Sub
也就是用于获取的代码加密,
如果....获取的号和预先设置的号相同对..就正常运行本表.....否则就....关闭退出excel工作薄
谢谢老师

[ 本帖最后由 qhllqhll 于 2010-12-24 07:46 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-24 09:22 | 显示全部楼层
原帖由 qhllqhll 于 2010-12-24 07:37 发表
请问老师:下面的代码怎么能改成用 “= GetHardDiskInfo()”调用啊?谢谢
Sub 硬盘型号()
Dim 硬盘
Set 硬盘 = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
For Each mo In 硬盘
MsgBox "硬盘型号为 ...

Sub 硬盘型号()
    Dim 硬盘
    Dim STR As String
    Set 硬盘 = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
    For Each mo In 硬盘
        If Len("硬盘型号为:" & mo.Model) > 1 Then
            STR = mo.Model
            Exit For
        End If
    Next
    If STR = "这里写你指定的硬盘型号" Then
        '这里写你的代码
    Else
        ThisWorkbook.Close 0
        Application.Quit
    End If
End Sub
《Excel_2010_VBA编程与实践》PDF下载:
http://u.115.com/file/f633621add#ExcelTipBook3.rar

[ 本帖最后由 andysky 于 2010-12-24 09:50 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-12-24 09:40 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 08:34 , Processed in 0.038211 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表