问题标签 [com4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
512 浏览

java - COM 接口 iStream 定义在哪个 DLL 中?

我是 Windows 和 COM 编程的新手,尝试使用 com4j 从 Java 调用 COM 对象。

Com4j 从“经常在 .ocx、.dll、.exe 和/或 .tlb 文件中找到”的 COM 定义生成 Java 接口。我很容易找到目标 COM 对象的 .ocx 文件,但我对标准接口 iStream 毫无头绪。

微软的文档提到了 OLE32.DLL ( c:\Windows\Windows32\Ole32.dll ?) ,但是 com4j 生成器和oleviewer都没有成功打开这个文件。

有什么提示吗?

0 投票
1 回答
1235 浏览

java - 为什么我没有通过 Com4J 接收 COM 事件?

我正在使用 Com4J 与 Microsoft Outlook 进行交互。我已经按照Com4J 教程生成了 Java 类型定义。下面是一些等待用户关闭电子邮件的代码示例。

此代码成功地向用户显示电子邮件。不幸的是,"Closed"当用户关闭窗口时,我的程序永远不会打印。

0 投票
1 回答
318 浏览

java - 如何找到用于 COM4j 的 DirectShow 接口的类型库标识符

我正在尝试使用 COM4j 与 Windows 上的 Java 网络摄像头交互(不通过 FMJ 或 JMF 框架)。但是,我无法找到 Direct Show 的类型库标识符来构建接口。COM4j 站点建议使用 OleView 来查找类型库,但我已经浏览了那里的类型库列表,但没有找到任何看起来可能提供 DirectShow 接口的东西。

0 投票
1 回答
3192 浏览

java - 如何在不提示的情况下使用 com4j API 保存 excel 工作簿

我正在尝试保存已自动修改的工作簿。这是一个例子:

}

上面的代码是从一个 ant 文件运行的,并产生了以下错误:

我尝试了以下事情,但都没有成功:

  1. 将 readOnly 参数设置为 false
  2. 将 ignoreReadOnly 参数设置为 true
  3. 做1和2
  4. 将 saveBeforeExit 对象传递给 save 方法

有没有办法在不提示的情况下保存工作簿?请注意,上面的代码确实打开了文件,并且计算公式没有任何错误。

谢谢

0 投票
1 回答
3211 浏览

java - 在 Java 中使用带有 WIA 和 com4j 的 COM 对象

我是这方面的新手,我想问您是否可以向我推荐一些文章、示例等,以开始与 java 应用程序中的扫描仪通信
我正在开发一个模块,该模块应该与直接或本地网络中连接的不同扫描仪通信.. . 我希望 WIA 从 com4j 开始 ..
谢谢大家的任何建议 :)

编辑:我在这篇Com4j 教程中得到了一些信息,我需要从 ocx 文件生成一些 java 类型定义。
如果我理解它,这些生成的类将是我使用 com4j 获取扫描仪的客户。但是我应该使用什么 ocx/dll 文件?
有人有想法吗?

更新 1:所以我设法让库生成包装类,它是 wiaaut.dll(Windows 图像采集自动化库),然后通过 ClassFactory 我创建了一个 DeviceManager 实例,但里面没有设备.. .
如何让 deviceManager 看到本地网络上的扫描仪?

更新 2:所以我发现,我的 HP LaserJet 2840 无法在 win7 64 位中通过网络扫描......现在这个问题得到了回答,我应该自己发布答案并将其设置为接受,还是以其他方式关闭这个 Q ? 谢谢

0 投票
1 回答
918 浏览

java - 使用 com4j 打印 MSWord 文档

我正在尝试使用 com4j 打印出一个 .doc 文件。这是我的代码:

我从记录的 Word-Macro 和http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.printout(v=VS.80).aspx中获得了值

但我得到的只是以下错误:

Java 运行时环境检测到意外错误:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x770f48f9, pid=3792, tid=5996

Java VM:Java HotSpot(TM) 客户端 VM(11.0-b16 混合模式,共享 windows-x86) 有问题的框架:C [OLEAUT32.dll+0x48f9]

知道我该如何解决这个问题吗?

编辑: Com4j 正在打开文档,所以我认为以前方法的结果不是问题,但感谢 DTH 的提示。

0 投票
1 回答
888 浏览

java - 将调用 iTunes DLL 的 Java 代码从使用 Com4j 转换为 Jacob

我目前使用 Com4j 从我的 Java 应用程序与 iTunes 对话,不幸的是它不适用于 64 位 Java,而且看起来永远不会,所以我尝试使用名为 Jacob 的替代方案。

这两个库都提供了一个从 DLL 生成 Java 类的工具,生成的类非常相似,并且可以直接更改大部分代码,但我无法找到子类型

这两个库都创建了 IITPlaylist 和 IITUSerPlaylist 类,但只有 com4j 提供了 queryInterface 类,并且没有 IITUserPlaylist 实际上不是 IITPlaylist 的子类。

com4j 也提供了 is 方法,但 jacob 没有

有谁知道如何解决这些问题?

编辑:取得了一些进展,但仍未使其正常工作,有一个 QueryInterface 方法采用类的 guid(包括大括号),我通过查看运行 jacobgen 时创建的 jacobgenlog.txt 文件找到了 guid在 iTunes 可执行文件上

然后返回另一个与子类相关的 Dispatch 对象,但是我所做的简单转换是无效的,缺少什么步骤?

is() 功能被替换为检查种类

工作中的一个扳手是 jacobgen getKind() 方法是无效的Java,因为它们试图返回一个新接口,当然你不能实例化一个接口,所以我不得不修改它们如下

ITPlayListKind 来自

在 IITUserPlaylist 内

这不是我最初的想法,我从http://dot-totally.co.uk/software/itunescon/得到这个想法,这似乎是 jacobgen 创建的 iTunes 类的修改版本,我没有发现它添加了很多,并决定坚持使用 jacobgen 生成的类。

0 投票
0 回答
738 浏览

java - 当控件不允许自动化(com4j/jacob)时如何通过java调用ActiveX方法?

我必须集成到不允许IsInvokeAllowed通过 Java 实现自动化(未实现返回 true)的 ActiveX 控件。

到目前为止,我研究中用于 COM 集成的最佳 Java 库是com4jjacob

当尝试在不允许自动化的控件上调用方法时,我在调用允许自动化的控件上的方法时遇到灾难性失败异常。

有没有办法调用不允许使用 Java 自动化的 ActiveX 对象的方法(通过 com4j/jacob/other)?

不幸的是,让 ActiveX 对象供应商在他们的控件上启用自动化不是一种选择。

0 投票
0 回答
725 浏览

java - COM4J 因访问冲突而导致 JVM 崩溃

我正在尝试使用 COM4J (20110320) 与 Dragon Naturally speak 11 交互。它成功启动,我能够与 COM 对象进行交互,包括从中获取事件。

但是,一旦它启动并正在侦听即将到来的事件,JVM 最终将因 EXCEPTION_ACCESS_VIOLATION 而崩溃。这个时间是相当不稳定的,可以是从几乎立即到几分钟的任何事情。

报告的问题帧各不相同,jvm.dll、oleaut32.dll 和 com4j-x86.dll 都发生了各种偏移。Java 框架是一致的:

运行 Windows 7 Pro SP1 x64、JDK 1.6.0u24 x86。

我已经在 C# 中使用它没有崩溃的同一个 COM 对象进行了快速测试。

任何人都可以分享一个见解?

干杯,丹尼尔。

0 投票
1 回答
995 浏览

java - 无法使用 Com4j 处理 QC 对象模型

情况:我成功地使用 com4j 和 java 连接到我的 QC

爪哇代码:

但我不能从对象做任何演员

无法将线程“main”中的异常失败并java.lang.ClassCastException: $Proxy11转换为test.ota.ITestFactory

请帮忙