马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 newer 于 2017-6-10 16:30 编辑
关于WMI介绍见:http://bbs.xdcad.net/thread-709842-1-1.html
- 部分信息:
- 的值可获得其他信息
- Win32_ComputerSystem && 计算机系统信息
- Win32_Process && 进程信息
- Win32_Processor && CPU信息 ( ProcessorId 项为序列号)
- Win32_DiskDrive && 磁盘信息 ( PNPDeviceID 项中\之后为序列号)
- Win32_LogicalDisk && 分区(盘符)信息
- Win32_NetworkAdapterConfiguration && 网卡信息 ( IPAddress 项为IP地址, MACAddress 项为MAC地址)
- Win32_BaseBoard && 主板信息 ( Manufacturer 项为主板生产商, Product 项为主板名称)
- Win32_PhysicalMemory && 内存信息 ( Capacity 项为内存容量[字节])
- Win32_VideoController && 显示卡信息
- Win32_Share && 共享信息
- Win32_Keyboard && 键盘信息
- Win32_PointingDevice && 鼠标和触摸版信息
- 更多请参考 MSDN
复制代码
[hide]
 - (defun XD::SYSTEM:WMI-Query (table Items Conditions / i qry query_string str svr val x)
- (if (and
- (or
- **XD::WMI**
- (xd::vlaobject-p **XD::WMI**)
- (setq **XD::WMI** (vlax-create-object "WbemScripting.SWbemLocator"))
- )
- (setq svr (vlax-invoke **XD::WMI** 'ConnectServer))
- (setq Conditions (if (XD::NotEmptystring-p Conditions)
- (strcat " where " Conditions)
- ""
- )
- )
- (setq query_string (strcat "SELECT " Items " FROM " table Conditions))
- (setq qry (vlax-invoke svr 'ExecQuery query_string))
- )
- (progn
- (setq str nil)
- (vlax-for i qry
- (mapcar
- '(lambda (x)
- (setq val (vlax-get i (read x)))
- (setq str (cons (if (= (type val) 'STR)
- (xdrx_string_regexpr "\\\\\\\\.\\\\|^[ ]+|[ ]+$"
- val ""
- )
- val
- ) str
- )
- )
- )
- (xdrx_string_split Items ",")
- )
- )
- (vlax-release-object qry)
- (vlax-release-object svr)
- (reverse str)
- )
- )
- )
- 命令: tt
- CPU型号:Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
- 序列号:BFEBFBFF000306C3
复制代码
2、获取内存大小:
 - (defun c:tt ()
- (princ
- (strcat "\n内存大小:"
- (rtos (setq memsize (/ (atof (car (XD::SYSTEM:WMI-QUERY
- "Win32_PhysicalMemory"
- "Capacity" ""
- )
- )
- )
- (^ 1024 3)
- )
- )
- 2
- 0
- )
- "G"
- )
- )
- (princ)
- )
3、获取操作系统名字
 - (defun c:tt ()
- (princ
- (strcat "\n操作系统:"
- (car (XD::SYSTEM:WMI-QUERY "Win32_OperatingSystem" "Caption" ""))
- )
- )
- (princ)
- )
- 命令: tt
- 操作系统:Microsoft Windows 10 企业版
复制代码
4、获取所有的物理硬盘的序列号
 - (defun c:tt ()
- (princ
- (strcat "\n硬盘序列号:"
- (vl-prin1-to-string
- (vl-sort (xd::list:group<n (mapcar '(lambda (x)
- (xdrx_string_regexpr "PHYSICALDRIVE" x "DISK")
- )
- (XD::SYSTEM:WMI-QUERY
- "Win32_PhysicalMedia"
- "TAG,SerialNumber"
- "TAG LIKE '%PHYSICALDRIVE%'"
- )
- ) 2)
- '(lambda (x y) (< (car x) (car y)))
- )
- )
- )
- )
- (princ)
- )
- 命令: tt
- 硬盘序列号:(("DISK0" "W4Z1Z61C") ("DISK1" "S1E2SBF7") ("DISK2" "S1E2S9JH") ("DISK3"
- "718167584100000") ("DISK4" "000000000000") ("DISK5" "000000000001") ("DISK6"
- "000000000002") ("DISK7" "000000000003") ("DISK8" "000000000004"))
复制代码
................................
|