悬赏已过期 后悬赏过期
悬赏

ZWCAD中使用AutoLISP操作Excel后进程残留,导致后续操作异常

邀请:

问题描述
在ZWCAD中运行AutoLISP代码操作Excel数据后,Excel进程(EXCEL.EXE或WPS的ET.EXE)会在后台残留,导致:

  1. 无法再次通过代码连接Excel(提示对象已存在)。
  2. 手动打开Excel时速度极慢(需等待后台进程彻底关闭)。
  3. 对比现象:同样的代码在 AutoCAD 环境下运行,即便有后台残留,也不影响后续使用
  4. 代码关键逻辑(已尝试的优化措施)​

    ;; 1. 强制退出Excel
    (vl-catch-all-apply ‘vlax-invoke-method (list xlsapp “Quit”))

    ;; 2. 释放所有对象(工作表、工作簿、应用)
    (if xlsht (vlax-release-object xlsht))
    (if xlsapp (vlax-release-object xlsapp))

    ;; 3. 系统级终止进程(备用方案)
    (vlax-invoke (vlax-create-object “WScript.Shell”) “Run” “taskkill /f /im excel.exe”)

  5. 已尝试的解决方案

    1. 显式调用Quit方法并释放对象。
    2. 使用unwind-protect确保资源释放。
    3. 以管理员身份运行ZWCAD。
    4. 更换Excel版本(测试Microsoft Excel和WPS)。

    环境信息

    • ZWCAD版本:2025(请填写实际版本)
    • 操作系统:Windows 11
    • Excel/WPS版本:Microsoft Office 2024 / WPS 

    • CAD权限:已尝试管理员和非管理员模式。

    求助内容

    1. ZWCAD在处理COM对象释放时,是否有特殊配置或限制?
    2. 是否存在已知的进程残留问题(如特定版本缺陷)?
    3. 是否需要修改代码逻辑以适配ZWCAD的COM接口?
收藏0
分享
您的回答

回答

默认排序 时间排序
图片审查中...
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
复制链接
微信扫码
已复制到剪贴板