有没有大佬帮忙看看插件哪里有问题呀 在我电脑上使用后 退出EXCEL后 后台就会有残留 下次启动速度就变慢很多 LSP的
;; 检测Excel进程和COM对象状态的插件
(DEFUN C:QQQ (/ *error* XLSAPP XLSHT WB)
;; 错误处理函数
(defun *error* (msg)
"错误处理,按顺序释放Excel资源"
(princ "\n错误: ")
(princ msg)
;; 异常时释放顺序:工作表 → 工作簿 → 应用程序
(when XLSHT
(vlax-release-object XLSHT)
(setq XLSHT nil)
(princ "\n异常释放工作表对象")
)
(when WB
(vlax-release-object WB)
(setq WB nil)
(princ "\n异常释放工作簿对象")
)
(when XLSAPP
(vlax-release-object XLSAPP)
(setq XLSAPP nil)
(princ "\n异常释放应用程序对象")
)
(princ)
)
(vl-load-com)
;; 尝试获取Excel应用程序对象
(princ "\n尝试获取Excel应用程序对象...")
(if (setq XLSAPP (vlax-get-object "Excel.Application"))
(progn
(princ "\nExcel应用程序对象已获取。")
;; 获取当前工作簿
(princ "\n尝试获取当前工作簿对象...")
(setq WB (vlax-get-property XLSAPP 'ActiveWorkbook))
(if WB
(princ "\n当前工作簿对象已获取。")
(princ "\n未找到当前工作簿对象。")
)
;; 获取当前活动工作表
(princ "\n尝试获取当前活动工作表对象...")
(setq XLSHT (vlax-get-property WB 'ActiveSheet))
(if XLSHT
(princ "\n当前活动工作表对象已获取。")
(princ "\n未找到当前活动工作表对象。")
)
;; 释放对象
(if XLSHT
(progn
(vlax-release-object XLSHT)
(setq XLSHT nil)
(princ "\nExcel工作表对象已释放。")
)
)
(if WB
(progn
(vlax-release-object WB)
(setq WB nil)
(princ "\nExcel工作簿对象已释放。")
)
)
(if XLSAPP
(progn
(vlax-release-object XLSAPP)
(setq XLSAPP nil)
(princ "\nExcel应用程序对象已释放。")
)
)
)
(princ "\n未找到Excel应用程序对象。")
)
(PRINC)
)