java - java-无法访问 ActiveX 应用程序“com.jacob.com.ComFailException: Can't get object clsid from progid”
问题描述
我正在尝试进行面部检测和比较代码。现在对于这个项目,我将使用 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(Default)->"{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,但它也不起作用。你见过这种类型的错误吗?你有没有解决这个问题?
解决方案
您必须插入注册程序名称而不是 clsid。
ActiveXComponent activeXComponent = new ActiveXComponent("ACTIVEX.ActiveXCtrl.1");
推荐阅读
- c# - UWP CalendarView 添加 SelectedDays 不会改变可见月份
- python-3.x - 在面板中选择文件并在另一个面板中可视化 wxpython
- symfony - Symfony 形式的奏鸣曲字段类型
- android - keytool -list -printcert -jarfile ./myapk.apk 给我 Not a signed jar file
- file - 在 WSL 中运行 shell 脚本时出现“E: Invalid operation update”错误
- keras - keras 预训练的 ResNet50 目标形状
- android - 在 android studio 中未检测到设备
- php - wp AJAX 加载更多插件重复相同的先前帖子
- python - 如何在特定“开始”和“停止”标记之间的位置填充熊猫系列中的值?
- java - 如何在android中获取用户权限而不将其声明为清单