明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2634|回复: 5

[提问] 已知怎样得到所有硬盘序列号,如何确定哪个硬盘是系统所在盘

[复制链接]
发表于 2014-11-28 00:43:01 | 显示全部楼层 |阅读模式
本帖最后由 lionguns 于 2014-11-28 00:47 编辑

根据明经内贴子以下代码可确定所有硬盘序列号:
(setq WMI (vlax-create-object "WbemScripting.SWbemLocator"))
  (setq SVR (VLAX-INVOKE WMI 'ConnectServer))
     ;获取所有硬盘序列号列表
(setq DISK (vlax-invoke SVR 'InstancesOf "Win32_DiskDrive"))
  (vlax-for item DISK
    (setq @DISKID (cons (vlax-get item 'signature) @DISKID)) ;CPU ID
  )
;;;以上@DISKID即为硬盘序列号列表,
;;;请教高手如何判断哪个序列号为系统所在硬盘的序列号。
发表于 2014-12-3 22:37:16 | 显示全部楼层
本帖最后由 mmmmmm 于 2014-12-4 15:52 编辑

应该可以很容易知道系统盘的盘符,然后尝试使用"Win32_LogicalDiskToPartition",通过枚举DISK的"Properties_"属性,可以找到信息类似这样:
((("StartingAddress" . "85904856576")
   ("EndingAddress" . "292071467519")
   ("Dependent"
     .
     "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_LogicalDisk.DeviceID=\"G:\""
   )
   ("Antecedent"
     .
     "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_DiskPartition.DeviceID=\"Disk #0, Partition #1\""
   )
)
  (("StartingAddress" . "292071499776")
    ("EndingAddress" . "500105249279")
    ("Dependent"
      .
      "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_LogicalDisk.DeviceID=\"E:\""
    )
    ("Antecedent"
      .
      "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_DiskPartition.DeviceID=\"Disk #0, Partition #1\""
    )
  )
  (("StartingAddress" . "85904856576")
    ("EndingAddress" . "292071467519")
    ("Dependent"
      .
      "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_LogicalDisk.DeviceID=\"D:\""
    )
    ("Antecedent"
      .
      "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_DiskPartition.DeviceID=\"Disk #0, Partition #1\""
    )
  )
  (("StartingAddress" . "32256")
    ("EndingAddress" . "85904824319")
    ("Dependent"
      .
      "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_LogicalDisk.DeviceID=\"C:\""
    )
    ("Antecedent"
      .
      "\\\\TZ-GBKGLV1\\root\\cimv2:Win32_DiskPartition.DeviceID=\"Disk #0, Partition #0\""
    )
  )
)

里面有详细的各个磁盘对应的硬盘及其分区编号
 楼主| 发表于 2014-12-4 17:37:30 | 显示全部楼层
mmmmmm 发表于 2014-12-3 22:37
应该可以很容易知道系统盘的盘符,然后尝试使用"Win32_LogicalDiskToPartition",通过枚举DISK的"Propertie ...

PHYSICALDRIVE0
我直接把这个为0的当主硬盘了。不知道有没问题
发表于 2014-12-4 18:08:08 | 显示全部楼层
windows 7 没戏

_$ (getenv "windir")
"C:\\windows"
_$
发表于 2014-12-4 19:43:15 | 显示全部楼层
不清楚你为何需要这个功能。
估计在大多数情况下,大家都是把系统装在第一个物理硬盘的首个分区内,所以基本都是ok的。
windows系统启动肯定一般是从C盘,多数人也会将windows安装在C盘。但也会有人将windows安装到D或其他盘,理论上是允许的。所以具体定义“系统盘”时可能会有差异的。
发表于 2017-12-12 23:08:06 | 显示全部楼层
ivde 发表于 2014-12-4 18:08
windows 7 没戏

_$ (getenv "windir")

win7有别的解决办法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 22:50 , Processed in 0.166164 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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