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

java - COM4J 将字节数组传递给 COM 方法

我正在尝试通过 com4j 库从 java 调用一些 COM 方法。在我可以访问的文档中,COM 方法的签名是:

我想将一个字节数组传递给该方法并从中获取一个字节数组。Com4J 生成的界面显示为:

但是我不知道以什么格式发送它们。

似乎不起作用。也没有将它们声明为对象或诸如此类的东西。我查看了 com4j.SafeArray ( http://com4j.kohsuke.org/apidocs/com4j/SafeArray.html ),但我不太明白应该如何将数组放入其中。

有没有其他人曾经使用过 com4j 库并弄清楚如何发送/接收字节数组?

0 投票
1 回答
1456 浏览

c# - 通过 COM4J 从 .NET 方法返回接口数组

如何通过 COM4J 从 C# 方法将对象数组(实现 COM 接口)返回到 Java 方法?

生成数组的示例 C# 类:

生成的 .tlb 中的接口声明如下所示:

Java客户端代码:

这可以编译,但我在运行时得到这个异常:

我尝试过的其他事情:

  • 编组为 aSAFEARRAY(VARIANT)*而不是SAFEARRAY(IUnknown*)*
    (这会引发相同的异常。)
  • 删除MarshalAs属性(tlbimp创建代理方法失败)

有没有办法编组数组以便 COM4J 可以将其转换为有效的 Java 数组?

或者,有没有办法在 Java 中分配一个数组并允许 .NET 方法填充它?(我试过了,但是 .NET 方法接收到数组的副本,Java 代码永远不会看到插入到副本中的对象。也许有办法覆盖它?)


编辑:这可能是相关的:https ://stackoverflow.com/a/6340144/12048 - 类似的东西似乎可以从 VBScript

0 投票
1 回答
2009 浏览

java - 如何使用 com4j 将 Java 桥接到 CATIA COM API

这是 C++ 代码:

我想用 com4j 在 Java 中调用相同的 CATIA API。根据 com4j 教程页面,Java 定义是通过以下命令生成的:

但是结果 ClassFactory 没有创建 COM 对象的静态方法。

然后我尝试了另一个类型库“CATIAAppTypeLib.tlb”。

在Java中调用这些方法时,我得到了

我找不到为应用程序接口创建实例的方法。

任何人都可以帮助我吗?谢谢。

0 投票
1 回答
814 浏览

java - 你如何在visio中设置自定义行尾?

我正在编写一个 visio 导出并创建了一个包含自定义行尾的 visio 模板文件。当我尝试使用代码设置它们时,它不起作用。

所以 visio 中有 45 个默认行尾,列表中的第 46 个是我的。当我设置数字 45 时,它有效,数字 46 无效。当我右键单击连接并转到格式-> 行时,选择了正确的行尾并且预览也是正确的。我必须再次选择结尾并单击应用以在文档中更新它。

我正在使用 Visio 2007

0 投票
0 回答
374 浏览

java - 从 COM4J 对象获取 PID(进程 ID)

我正在使用 COM4J 生成 MS Office 文档,但有时某个进程停止工作。

我想知道是否有办法识别使用 COM4J 创建的应用程序的 PID。

使用进程 ID,我将终止阻塞队列的进程。

0 投票
1 回答
129 浏览

java - 使用 Com4J 检索窗口标题

我有一个在 java 应用程序中使用 COM4J 的 MS Office 桥,我正在尝试检索 word 应用程序的窗口标题。

有办法做到这一点吗?

0 投票
1 回答
1380 浏览

java - 使用 Com4j 从 QC 获取测试用例列表

我编写了以下代码来从 QC 中检索测试用例列表,但它tsTestFactory为空,而当我评估时qcConnect.testSetFactory()它时返回一个 Com4j 对象。

我在这里做错了什么

0 投票
1 回答
252 浏览

java - 为什么我的 Com4J 接口在迭代期间挂起?

我必须将第三方 COM API 连接到 Java 应用程序中。所以我决定使用Com4j,到目前为止我很满意,但是现在我遇到了问题。

运行后,tlbgen我有一个IAddressCollection根据原始 API 文档调用的对象符合IEnum接口定义。该对象提供了一个iterator()返回java.util.Iterator<Com4jObject>. 该对象来自另一个对象IMessage,当我想查找消息的所有地址时调用。所以我希望代码能像这样工作:

我的问题是,当我尝试adrItr.next()什么都没有发生时,代码停止工作但挂起。没有抛出异常,我通常必须通过任务管理器将其杀死。所以我想知道这是一个常见的问题Com4j,还是我处理错了,或者它可能是 API 的问题?

0 投票
2 回答
539 浏览

java - 查询 LDAP 时使用 Com4j 指定最大结果

我正在尝试使用 Com4j 查询 ldap 以检索所有内部员工。下面的代码有效,但总是返回 960 个结果,而应该有数千个结果。有办法指定最大结果大小还是我应该做一些不同的事情?

ResultSet 属性如下:

0 投票
4 回答
9350 浏览

java - 使用 COM4J 连接到 Quality Center v11

我正在尝试使用 Java 代码和 com4j 连接到 HP Quality Center V11,但我不断收到以下错误。有人可以看看错误吗?

当我在浏览器中使用 URL 并使用相同的凭据登录时,我能够登录。我仔细检查了我的域、网址、ID 和密码的所有拼写。

我得到的错误:

我用来连接的代码