只需一步,快速开始
使用道具 举报
磁盘属性里面有 是按编码分类的
包括U盘
不客气
这个函数应该可以:
(defun GetCD-ROM (/ disk item WMI CONNECT SSET lst) (vl-load-com) (if (setq WMI (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator")) (progn (setq CONNECT (VLAX-INVOKE WMI 'Connectserver "." "\\root\\cimv2" "" "" "" "" 128 nil ) ) (setq SSET (VLAX-INVOKE CONNECT 'ExecQuery "SELECT * FROM Win32_LogicalDisk WHERE DriveType = 5" ) ) (vlax-for item SSET (setq disk (vlax-get item 'DeviceID) lst (append lst (list disk)) ) ) (mapcar 'vlax-release-object (list SSET CONNECT WMI)) ) ) (if (cdr lst) lst (car lst) ))
也可搭DosLib的便车(dos_drive [drive]) +
(dos_drivetype [drive])
Examples Command: (dos_drivetype) "FIXED"
Command: (dos_drivetype "f:") "CDROM"
Command: (dos_drivetype "z:") "REMOTE"
tengte发表于2009-11-29 0:11:00这个函数应该可以:(defun GetCD-ROM (/ disk item WMI CONNECT SSET lst) (vl-load-com) (if (setq WMI (VLAX-CREATE-OBJECT \"wbemScripting.SwbemLocator\"))  
用Win32_CDROMDrive 也是可以的
liminnet发表于2009-12-1 17:00:00tengte哥,那怎么样才能判断光驱中有没有放入光盘啊,帮帮我
如龙龙仔所说,使用Win32_CDROMDrive更简单直接。
(defun GetCD-ROM (/ tmp disk item WMI CONNECT SSET lst) (vl-load-com) (if (setq WMI (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator")) (progn (setq CONNECT (VLAX-INVOKE WMI 'Connectserver "." "\\root\\cimv2" "" "" "" "" 128 nil ) ) (setq SSET (VLAX-INVOKE CONNECT 'ExecQuery "SELECT * FROM Win32_CDROMDrive" ) ) (vlax-for item SSET (setq tmp (vlax-get item 'MediaLoaded) tmp (if (= tmp 0) "无光盘" "有光盘" ) disk (list (vlax-get item 'ID) tmp) lst (append lst (list disk)) ) ) (mapcar 'vlax-release-object (list SSET CONNECT WMI)) ) ) (if (cdr lst) lst (car lst) ))
注意:光驱中有光盘时,函数运行需要较长时间去查询光驱的状态。
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-2-23 10:31 , Processed in 0.240186 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.