NetBee 发表于 2007-2-22 21:27:00

[求助][phyhar 获取硬盘物理序列号]又被WINXP搞了

;;在XP下测试通过
(defun phyhar (/ ret serx objw lccon lox)
(vl-load-com)
(setq serx '())
(if (SETQ OBJW (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator"))
    (progn
      (SETQ lccon (VLAX-INVOKE
    OBJW       'ConnectServer      "."
    "\\root\\cimv2"   ""      ""
    ""      ""   128      nil
   )
      )
      (setq lox (vlax-invoke
lccon
'ExecQuery
"Select SerialNumber,Tag from Win32_PhysicalMedia"
)
      )
      (vlax-for item lox
(setq serx (cons (list (vlax-get item 'Tag)
       (vlax-get
item
'SerialNumber
       )
)
serx
   )
)
      )
      (vlax-release-object lox)
      (vlax-release-object lccon)
      (vlax-release-object objW)
    )
)
(princ (reverse serx))
(princ)
)
这几天我的WINXP又自动升级了一次,嘿,这个函数突然就不能用了,返回为空。我感觉有点怪,又将原来下载的DiskID32.exe运行了一次,嘿。。。居然它也无法识别了,也是返回空。
我的硬盘是西捷的IDE 160G 7200 。原来一直都能读出的。难道是WINXP将硬盘方面的函数变化了????

无痕 发表于 2007-2-22 22:06:00

<p>是不是对script限制了??</p>

NetBee 发表于 2007-2-23 11:58:00

我又使用WMI中的Win32_DiskDrive来查看,其中Model信息为:"ST316002 1A SCSI Disk Device",难道被WINXP改为SCSI接口模式了????

小菜123 发表于 2007-2-23 15:55:00

这个函数我从来没有用成功过(我不用XP),win2K下取不到序列号,返回nil

NetBee 发表于 2007-2-23 18:06:00

本帖最后由 作者 于 2007-2-23 20:33:51 编辑 <br /><br /> 小菜123发表于2007-2-23 15:55:00static/image/common/back.gif这个函数我从来没有用成功过(我不用XP),win2K下取不到序列号,返回nil

<p>Win2000 你修改试试:"Select * from CIM_PhysicalMedia"</p><p></p><p></p>

alin 发表于 2007-2-23 21:58:00

<p>可能是你没有以管理员的身份log on?</p>

NetBee 发表于 2007-2-23 23:36:00

<p>呵呵,肯定是管理员的权限呀</p><p>&nbsp;</p>

小菜123 发表于 2007-2-24 15:54:00

<p>经测试,serial number都不能成功,但通过"Select * from win32_diskdrive",可以取得如下一些信息,如果用于加密,应该足够了<br/>(vlax-get item 'TotalCylinders)&nbsp; <br/>(vlax-get item 'TotalHeads)&nbsp;&nbsp; <br/>(vlax-get item 'TotalSectors)&nbsp; <br/>(vlax-get item 'TotalTracks)&nbsp;&nbsp; <br/>(vlax-get item 'Model)</p>

xzz007 发表于 2013-8-27 13:15:29

下载下来试一下
页: [1]
查看完整版本: [求助][phyhar 获取硬盘物理序列号]又被WINXP搞了