本帖最后由 不死猫 于 2023-10-12 11:22 编辑
32位CAD下 我们经常使用MSComDlg.CommonDialog对象实现文件多选。
这是老猫之前写的文件多选:- (defun non-GetFiles (/ )(此方法已废弃,请看后面的文件)
- (if (/= (vl-registry-read "HKEY_CLASSES_ROOT\\Licenses\\4D553650-6ABE-11cf-8ADB-00AA00C00905")
- "gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj")
- (vl-registry-write "HKEY_CLASSES_ROOT\\Licenses\\4D553650-6ABE-11cf-8ADB-00AA00C00905" ""
- "gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj")
- )
- (if (setq x (Vlax-Get-Or-Create-Object "MSComDlg.CommonDialog"))
- (progn (vlax-put-property x "DialogTitle" "nonsmall -- Lisp多选DWG文件")
- (vlax-put-property x "Filter" "DWG Files|*.dwg|All Files|*.*")
- (vlax-put-property x "MaxFileSize" 10000)
- ; (vlax-put-property x "Flags" 512)
- (vlax-put-property x "Flags" 1574404)
- (vlax-put-property x "Action" 1)
- (vlax-get x "Filename")
- )
- )
- )
64位时代,一直没有找到好的方法解决文件多选的问题,控件注册之类的都不成功。
今天老猫带来一个新的方法实现在全版本cad下的文件多选
若测试过程中进程不退出的 用任务管理器清理下。
|