Windows上开机自启BAT调用WPS的COM组件失败的解决方法

配置组件服务

Java中使用jacob调用WPS的COM组件的时候,手动启动可以,但是开机自启却不行

DCOM组件

  1. 运行 mmc -32 打开控制台。

  2. 点击 文件 -> 添加/删除管理单元 ,在 可用的管理单元 中选择 组件服务 ,然后点击 添加确定

  3. 展开 组件服务节 点直到看到 DCOM 配置

  4. 找到 WPS文字 文档 , 右键 属性

  5. 切换到 位置 选项卡,勾选在数据所在计算机上运行应用程序在此计算机上运行应用程序

  6. 切换到 安全 选项卡, 在 启动和激活程序 功能与 访问权限 选择 自定义 ,并编辑权限。

    添加所需的账户, 一般情况下, IIS 部署的 Web 应用需要 IIS Users 以及 NetWork Service, 而 Windows 服务则需要其登录身份的账户权限。 这里我一般选择 Everyone , 然后勾选本地启动,远程启动,本地激活,远程激活,还有就是远程访问。毕竟在程序中, 我们一般都是使用 RPC 的方式进行访问。

  7. 上述步骤设置完毕之后, 切换到标识 选项卡,勾选 下列用户 , 最好填写管理员账号密码 。点击应用。

  8. 打开C:\Windows\System32\config\systemprofile 目录,如果没有 Desktop 目录则新建。

  9. 打开 C:\Windows\SysWOW64\config\systemprofile 目录,如果没有 Desktop 目录则新建。

Windows服务

  1. 如果是 Windows服务 , 运行 services.msc 打开服务面板, 找到对应服务,右键属性。
  2. 切换到 登录 选项卡,登录身份选择 本地系统账户 并且勾选 允许服务于桌面交互

Java调用COM

工具类开头的宏说明
构件ActiveX组件实例

1
ActiveXComponent ax = new ActiveXComponent("name");

其中的 name 的值和你需要调用的ActiveX控件有关
每个 Dispatch 对象看成是对 ActiveX 控件的一个操作,这一步是获得该 ActiveX 控件的控制权

9.0之后的版本接口名称

MS控件名 name
WPS文字 KWPS.Aplication
WPS的Excel KET.Application
WPS的演示文档 KWPP.Application
Word Word.Application
Excel Excel.Application
Powerpoint Powerpoint.Application

Python示例

https://www.psvmc.cn/article/2021-11-15-python-doc-convert.html