问题标签 [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 投票
1 回答
999 浏览

java - 错误 com4j.ComException: 80004005 .\invoke.cpp:51 在打开窗口和选定项目时

我需要在 Windows 资源管理器中获取所有选定的文件和文件夹。我正在使用 com4j 访问 win Shell32 API (感谢 Tom91136,如果您需要了解如何安装和初始化 com4j ,请参考内容) 。

此代码类在 Windows 资源管理器中获取选定的文件或文件夹并打印。

我只发布了重要的部分。我正在使用计时器定期检查打开的文件。每秒调用 list() 方法。它工作正常,但如果我关闭一个窗口,我会收到以下错误。

我开始使用 try-catch 并得到了这个:

“IShellFolderViewDual3”方法有问题。

0 投票
0 回答
242 浏览

java - Win64 上的 com4J 连接到 Win32 应用程序

我有一个 32 位的第 3 方 Windows 应用程序;它提供了类型库,因此我可以从 VBS 连接到它,但只能使用来自 %WINDIR%\SysWOW64 的 WScript.exe。

我可以生成 Java 类以使用 tlbimp.jar 访问 COM 对象而不会出现任何错误,但是当我运行使用这些类的程序时,我得到

(“Klasse nicht registriert”翻译为“类未注册”)。

从 com4J 主页(连接到 WSH 的那个)运行测试样本可以正常工作。

获得 3rd 方应用程序的 64 位版本是不可能的(至少不在给定的时间范围内)。

我在 Win7/64 位上使用 Oracle 的 Java 8 64 位来完成此任务。

有没有机会让这个运行?

0 投票
0 回答
185 浏览

java - COM4J:为 oleacc.dll 生成代码 -> 无法处理 **byte 作为参数

当我尝试分析和创建 java 处理时,出现以下错误:

C:\Users\TAAKEMA6\java\com4j>java -jar tlbimp.jar -o wsh -p test.wsh %WINDIR%\sy stem32\oleacc.dll

从可访问性生成定义

无法处理类型字节**
方法 GetIdentityString
接口 IAccIdentity

无法处理类型 byte**
方法 ComposeHwndIdentityString
接口 IAccPropServices

无法处理类型字节**
方法 ComposeHmenuIdentityString
接口 IAccPropServices

如您所见,不支持字节**(指针的指针),这让我感到困惑。有什么解决方法或我可以做些什么来让事情恢复正常吗?

0 投票
3 回答
2035 浏览

java - HP ALM OTAClient.dll 与 64 位操作系统不兼容

我添加了一个代码来通过 Eclipse(Java) 连接并创建一个缺陷,HP ALM在其中它与 OTAClient 和 com4j.jar 进行通信。我成功地在 32 位操作系统中连接并创建了一个缺陷,但我无法在基于 64 位的操作系统上连接它。

我绕过了此处发布的一些解决方案,即使成功地遵循了解决方案,我也无法获得解决方案。[1]:Windows 64 位上的 com4j ..

这是我的代码

在 Eclipse 中运行上述代码时,我遇到了以下错误。

请提供在基于 64 位的操作系统上成功执行的任何解决方案或解决方案。

0 投票
3 回答
1063 浏览

java - 需要通过Java在QC中通过测试用例

任何人都可以帮助我解决以下问题我想通过 Java 在 QC 中传递测试用例,我使用了 con4j 并达到了测试集,但我无法获取相应测试集下的测试用例。任何人都可以帮助我如何通过 com4j 在 QC 中通过测试用例

0 投票
1 回答
157 浏览

java - Com4J MS Sapi 辅助函数

我在使用 Com4j 生成 MS Sapi 5.4 的帮助函数时遇到了问题。我必须用 Com4j 替换 SAPI 和 Java/JNI 的组合。例如,我想使用 CSpStreamFormat 的 AssignFormat 方法。一个简单的文本到语音是没有问题的,所以我可以说它在基础上是有效的。任何知道如何通过 com4j 访问 sapi 5.4 的完整方法集(尤其是辅助函数)的人?

谢谢斯特凡

0 投票
1 回答
190 浏览

java - 使用 Java、Com4j 在 ALM 中访问 ReleaseFolderFactory

我已经通过 Com4j 通过包装类将 HP ALM 12.5 与 Java 连接起来。要获取发布和周期详细信息,我需要访问 ReleaseFolderFactory 对象。你能帮我找到使用Java的方法吗?任何帮助将不胜感激。

0 投票
1 回答
2648 浏览

java - 使用 Com4j 或 Jacob 连接 64 位 Java 和 32 位 COM dll

我有以下配置:

1) Windows 10 64 位

2) 只有 32 位版本且可通过 COM 获得的应用程序。

我使用 tlbimb.jar 访问 32 位应用程序的 .dll 文件以生成所需的接口,我成功了。

场景 1:我尝试使用 Java 8 32 位安装访问 32 位应用程序。我可以通过COM成功调用这些方法,没有任何问题。

场景 2:我尝试使用 Java 8 64 位安装访问 32 位应用程序。我收到一条错误消息:

我在 Stackoverflow/Google 上搜索了异常,我做了以下事情:

1) 使用 Sys64WOW/regsvr32.exe 和 System32/regsvr32.exe 注册应用程序的 dll

2) 使用 Sys64WOW/regsvr32.exe 和 System32/regsvr32.exe 注册 com4j dll(32 位和 64 位)

3) 复制 Sys64WOW 和 System32 文件夹中的 dll。

我已经分别完成了以上所有工作,检查了所有可能的组合。使用 64 位 Java 的上述错误仍然存​​在。

我尝试过使用另一座桥(Jacob)。在 32 位 Java 上成功,在 64 位 Java 上失败。

我有一个问题要问可能知道的人:有什么方法可以连接一个应用程序,据我所知,它只提供一个Win32 COM dll [1],使用任何可用的 Java/COM 桥和Java 64 位?或者只是无法连接 32 位 COM + 64 位 Java?

[1]:我检查了 OLE/COM 查看器,在类型库下只有一个条目 "0 Win32 = ,所以我暗示这意味着没有 Win64 COM dll,对吧?

0 投票
1 回答
219 浏览

java - 使用 com4j 连接到现有的 iTunes 实例

使用 com4j 和 iTunes 包装器,我可以启动一个 iTunes 实例

从我的应用程序并成功使用 api。

但是,如果 iTunes 已经独立运行,那么它会失败

因为 iTunes 已经在运行,所以有没有一种方法可以连接到现有的 iTunes 实例,而不是在 iTunes 已经在运行时尝试创建一个新实例?

0 投票
1 回答
113 浏览

com - iTunes 似乎没有为其新的运动和工作字段公开 COM 接口

我使用Com4j让我的 Java 应用程序与Windows 上的 iTunes通信,我看到我生成的类不包含让我更新移动工作字段的方法,就像我可以更新其他字段(如艺术家专辑)一样。

所以我使用

针对最新的 12.6 iTunes exe,他们仍然不在这里。(我希望它们在 IITFileOrCDTrack.java 中)我做错了什么还是这是否意味着 iTunes 必须明确代码来公开新字段而他们决定不这样做。

那么这是否意味着 iTunes 必须明确编写一个新的 COM 接口以使其他程序可以访问这些字段

请注意,这些新字段可通过 Mac 机器上的 applescript 获得