[討論]LISP要如何讀取硬碟序號
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]LISP要如何讀取硬碟序號
上次有問過LISP要如何讀取網卡序號?
獲得站上先進指導已解決
這次再請教LISP要如何讀取硬碟序號?謝謝
獲得站上先進指導已解決
這次再請教LISP要如何讀取硬碟序號?謝謝
tarpon 在 2011-08-16, 10:22 作了第 1 次修改
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6254
威望值 : 263
注冊日期 : 2010-07-01
回復: [討論]LISP要如何讀取硬碟序號
在xp的環境正常,其他的不知道~
(defun wl-PNPDeviceID (/ str old-users4 PNPDeviceID i)
(vl-load-com)
(setq old-users4 (getvar "users4"))
(vla-eval (vlax-get-acad-object)
(setq str (strcat "set colDiskDrives = GetObject(\"Winmgmts:\").ExecQuery(\"Select * from Win32_DiskDrive\")" ":"
"out = \"\"" ":"
"For each objDiskDrive in colDiskDrives" ":"
"out = out & objDiskDrive.PNPDeviceID & \"~\"" ":"
"next" ":"
"ThisDrawing.SetVariable \"USERS4\", out"
)
)
)
(setq PNPDeviceID (getvar "users4"))
(setvar "users4" old-users4)
(setq i (vl-string-position (ascii "~") PNPDeviceID))
(setq PNPDeviceID (substr PNPDeviceID 1 i))
PNPDeviceID
)
(defun wl-PNPDeviceID (/ str old-users4 PNPDeviceID i)
(vl-load-com)
(setq old-users4 (getvar "users4"))
(vla-eval (vlax-get-acad-object)
(setq str (strcat "set colDiskDrives = GetObject(\"Winmgmts:\").ExecQuery(\"Select * from Win32_DiskDrive\")" ":"
"out = \"\"" ":"
"For each objDiskDrive in colDiskDrives" ":"
"out = out & objDiskDrive.PNPDeviceID & \"~\"" ":"
"next" ":"
"ThisDrawing.SetVariable \"USERS4\", out"
)
)
)
(setq PNPDeviceID (getvar "users4"))
(setvar "users4" old-users4)
(setq i (vl-string-position (ascii "~") PNPDeviceID))
(setq PNPDeviceID (substr PNPDeviceID 1 i))
PNPDeviceID
)
明~- 高級會員
- 文章總數 : 307
年齡 : 44
來自 : 彰化
職業 : 機械
愛好 : 打球 騎車 健行 音樂 電影 (說不完...)
個性 : 不與人爭
使用年資 : 從學生時代接觸到現在(工作中不一定使用)
使用版本 : 2004和2008
積分 : 17
經驗值 : 7197
威望值 : 667
注冊日期 : 2009-12-24
回復: [討論]LISP要如何讀取硬碟序號
to:~明
謝謝您提供的程式
請有安裝win7的幫忙測試一下
如果在win7下是否可正確執行
不行的話要如何修改
另提供一則網路上的程式
但求的值和~明的不一樣也是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)
)
謝謝您提供的程式
請有安裝win7的幫忙測試一下
如果在win7下是否可正確執行
不行的話要如何修改
另提供一則網路上的程式
但求的值和~明的不一樣也是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)
)
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6254
威望值 : 263
注冊日期 : 2010-07-01
回復: [討論]LISP要如何讀取硬碟序號
学习了。又吸收了一个精华。
这个东西很有用。
这个东西很有用。
cvi001- 初級會員
- 文章總數 : 20
年齡 : 40
來自 : 贵州
職業 : 贵州省地矿局职员
愛好 : AutoCAD LISP 编程
個性 : 无聊
使用年資 : 新手
使用版本 : 2011
積分 : 1
經驗值 : 4941
威望值 : 31
注冊日期 : 2011-08-26
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章