问题标签 [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.
java - COM4J 将字节数组传递给 COM 方法
我正在尝试通过 com4j 库从 java 调用一些 COM 方法。在我可以访问的文档中,COM 方法的签名是:
我想将一个字节数组传递给该方法并从中获取一个字节数组。Com4J 生成的界面显示为:
但是我不知道以什么格式发送它们。
似乎不起作用。也没有将它们声明为对象或诸如此类的东西。我查看了 com4j.SafeArray ( http://com4j.kohsuke.org/apidocs/com4j/SafeArray.html ),但我不太明白应该如何将数组放入其中。
有没有其他人曾经使用过 com4j 库并弄清楚如何发送/接收字节数组?
c# - 通过 COM4J 从 .NET 方法返回接口数组
如何通过 COM4J 从 C# 方法将对象数组(实现 COM 接口)返回到 Java 方法?
生成数组的示例 C# 类:
生成的 .tlb 中的接口声明如下所示:
Java客户端代码:
这可以编译,但我在运行时得到这个异常:
我尝试过的其他事情:
- 编组为 a
SAFEARRAY(VARIANT)*
而不是SAFEARRAY(IUnknown*)*
(这会引发相同的异常。) - 删除
MarshalAs
属性(tlbimp
创建代理方法失败)
有没有办法编组数组以便 COM4J 可以将其转换为有效的 Java 数组?
或者,有没有办法在 Java 中分配一个数组并允许 .NET 方法填充它?(我试过了,但是 .NET 方法接收到数组的副本,Java 代码永远不会看到插入到副本中的对象。也许有办法覆盖它?)
编辑:这可能是相关的:https ://stackoverflow.com/a/6340144/12048 - 类似的东西似乎可以从 VBScript
java - 如何使用 com4j 将 Java 桥接到 CATIA COM API
这是 C++ 代码:
我想用 com4j 在 Java 中调用相同的 CATIA API。根据 com4j 教程页面,Java 定义是通过以下命令生成的:
但是结果 ClassFactory 没有创建 COM 对象的静态方法。
然后我尝试了另一个类型库“CATIAAppTypeLib.tlb”。
在Java中调用这些方法时,我得到了
我找不到为应用程序接口创建实例的方法。
任何人都可以帮助我吗?谢谢。
java - 你如何在visio中设置自定义行尾?
我正在编写一个 visio 导出并创建了一个包含自定义行尾的 visio 模板文件。当我尝试使用代码设置它们时,它不起作用。
所以 visio 中有 45 个默认行尾,列表中的第 46 个是我的。当我设置数字 45 时,它有效,数字 46 无效。当我右键单击连接并转到格式-> 行时,选择了正确的行尾并且预览也是正确的。我必须再次选择结尾并单击应用以在文档中更新它。
我正在使用 Visio 2007
java - 从 COM4J 对象获取 PID(进程 ID)
我正在使用 COM4J 生成 MS Office 文档,但有时某个进程停止工作。
我想知道是否有办法识别使用 COM4J 创建的应用程序的 PID。
使用进程 ID,我将终止阻塞队列的进程。
java - 使用 Com4J 检索窗口标题
我有一个在 java 应用程序中使用 COM4J 的 MS Office 桥,我正在尝试检索 word 应用程序的窗口标题。
有办法做到这一点吗?
java - 使用 Com4j 从 QC 获取测试用例列表
我编写了以下代码来从 QC 中检索测试用例列表,但它tsTestFactory
为空,而当我评估时qcConnect.testSetFactory()
它时返回一个 Com4j 对象。
我在这里做错了什么
java - 为什么我的 Com4J 接口在迭代期间挂起?
我必须将第三方 COM API 连接到 Java 应用程序中。所以我决定使用Com4j,到目前为止我很满意,但是现在我遇到了问题。
运行后,tlbgen
我有一个IAddressCollection
根据原始 API 文档调用的对象符合IEnum
接口定义。该对象提供了一个iterator()
返回java.util.Iterator<Com4jObject>
. 该对象来自另一个对象IMessage
,当我想查找消息的所有地址时调用。所以我希望代码能像这样工作:
我的问题是,当我尝试adrItr.next()
什么都没有发生时,代码停止工作但挂起。没有抛出异常,我通常必须通过任务管理器将其杀死。所以我想知道这是一个常见的问题Com4j
,还是我处理错了,或者它可能是 API 的问题?
java - 查询 LDAP 时使用 Com4j 指定最大结果
我正在尝试使用 Com4j 查询 ldap 以检索所有内部员工。下面的代码有效,但总是返回 960 个结果,而应该有数千个结果。有办法指定最大结果大小还是我应该做一些不同的事情?
ResultSet 属性如下:
java - 使用 COM4J 连接到 Quality Center v11
我正在尝试使用 Java 代码和 com4j 连接到 HP Quality Center V11,但我不断收到以下错误。有人可以看看错误吗?
当我在浏览器中使用 URL 并使用相同的凭据登录时,我能够登录。我仔细检查了我的域、网址、ID 和密码的所有拼写。
我得到的错误:
我用来连接的代码