java-无法访问 ActiveX 应用程序 "com.jacob.com.ComFailException: Can' t 从 progid 获取对象 clsid”

标签 java activex jacob

我正在尝试制作人脸检测和比较代码。现在对于这个项目,我将使用ZZActiveX2.0。 所以我使用 jacob 来访问 Active X。 我下载了 jacob-1.19 并将 jacob-1.19-x86.dll 复制到 System32 并在我的 java 项目中注册 jacob-1.19.jar 。 我检查了注册表中的应用程序clsid(HKEY_CLASSES_ROOT\ACTIVEX.ActiveXCtrl.1\CLSID(默认)->“{e77e4cc8-e879-4a72-850a-b824742ec5b7}”)。

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

class ActiveXTest {
    public static void main(String[] args) {       
        try {
            ActiveXComponent xl = new ActiveXComponent("{e77e4cc8-e879-4a72-850a-b824742ec5b7}");
            Dispatch xlo = xl.getObject();

        }
        catch (Exception e){
            e.printStackTrace();
        }

    }
}

但是这段代码出现了如下错误。

com.jacob.com.ComFailException: Can't get object clsid from progid
    at com.jacob.com.Dispatch.createInstanceNative(Native Method)
    at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
    at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
    at ActiveXTest.main(ActvieXTest.java:11)

我搜索了这个错误并看到了有关Word应用程序的示例项目。 我遵循了一些解决方案,但它在我的项目中不起作用。有人建议使用 regasm 或 AutoItx,但它也不起作用。 你见过这种类型的错误吗?这个问题你解决了吗?

最佳答案

您必须插入regiseterd 程序名称而不是clsid。

 ActiveXComponent activeXComponent = new ActiveXComponent("ACTIVEX.ActiveXCtrl.1");

关于java-无法访问 ActiveX 应用程序 "com.jacob.com.ComFailException: Can' t 从 progid 获取对象 clsid”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141760/

相关文章:

ms-access - Access 数据库表单 ActiveX 控件错误

java - 使用 JACOB 为数组属性设置参数

java - JACOB 没有正确释放对象

java - 如果对象被移动到另一个包或重命名,我该如何反序列化?

java - Activity 开始后?

Excel Activex 列表框可在选择同一单元格时打开和关闭,而无需先单击另一个单元格

javascript - 需要通过javascript与浏览器通信的java applet的替代方案

java - 私下分发 jar 并解决其依赖关系的最简单方法是什么?

java - AWT-EventQueue-0“java.lang.ArrayIndexOutOfBoundsException : 0 error for JTable

javascript - Javascript html 中的 Windows 身份验证