问题标签 [jacob]

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 回答
6543 浏览

java - 无法共同创建对象/找不到名字对象 | 雅各布

创建ActiveXComponent使用 JACOB 时出现以下错误。

我需要在安装过程中不自行注册其 DLL 的程序中使用的 COM 对象。

为了注册 DLL,我根据这篇文章使用了 64 位版本的 RegAsm,这可能会有所帮助。此外,我尝试加载外部程序的每个 DLL,因为我怀疑加载依赖项可能存在“问题”。

这是我当前的代码:

将名称更改为 clsid 时,我得到一个不同的异常。

我让 JACOB 使用系统的 Random 对象在另一个测试中使用我的代码。

0 投票
1 回答
783 浏览

java - 使用 Java 应用程序进行本地 Windows 身份验证,64 位

给定用户名和明文密码,我们的应用程序当前使用 Jawin FuncPtr 验证本地用户是否存在这些凭据,以访问 advapi32.dll 的 LogonUser 函数。但是,在网上看到目前没有32位版本的Jawin dll,这是一个问题,因为我们要将此应用程序移植到64位系统上,并且需要使用64位Java这些系统(据我所知,即使 DLL 位于 WOW 文件夹中,也无法访问 32 位 DLL)。我一直在尝试找到一种方法来使用 Jacob 项目,而不是使用 Jawin,因为我们已经在其他地方使用它,有一个 64 位版本,我注意到可以使用以下内容获取用户的组信息(取出异常逻辑;用户名是之前传入的字符串):

因此,如果我可以获得用户的组信息,我应该也能够验证用户,希望通过非常相似的方式。我首先尝试使用 advapi32.dll 构建一个新的 ActiveXComponent,因为 Jawin 正在使用它,但发现 advapi32.dll 不是有效的 COM 对象。我为这篇文章的标题尝试了几种同义词组合,包括专门搜索将处理本地身份验证的 COM 对象/程序 ID(用于 ActiveXComponent)。到目前为止,我发现的是:

-如何获取当前凭据。然而,在我们的应用程序的许多情况下,当前用户凭据与用于登录应用程序的凭据不同。

-如何通过 LDAP 或类似协议进行身份验证。该应用程序仅用于访问本地用户组,​​不会安装 Active Directory 等。

-如何通过系统类/JNI 加载库(例如 advapi32.dll),虽然找不到如何从 advapi32.dll 调用方法,我很确定它不是为这种方式设计的。

我知道我可能错过了谷歌/正确想法的正确词,所以任何指导都会有所帮助。使用 Jacob 只是一种偏好,因为我们已经在使用它了;如果有更好的东西可以在 32 位和 64 位系统上访问(我们不想在这些架构之间进行太多更改),请告诉我。

也随时告诉我我的帖子是否可以以某种方式改进。我从这个网站读了很多,但这是我的第一篇文章。

0 投票
1 回答
205 浏览

java - 无法在 NetBeans 中确认 Jacob 接口

我有一个使用 COM 的项目,我使用 JACOB 接口,但我不知道将 Jacob 库确认为 NetBeans!有人知道,可以帮助我吗?感谢您的帮助!

0 投票
1 回答
2859 浏览

java - 作为 Windows 服务运行时,Excel 无法读取 Java 进程写入的文件

不容易用一句话概括问题...

我有一个使用 Java 6 在 tomcat 7 上运行的 Web 应用程序。该应用程序使用使用 JNI 和 COM 的 JACOB 访问 Excel 工作表,从而启动一个单独的 Excel 进程。为了确保 Excel 工作表是可变的,我的 Java 进程使用 File.createTempFile() 创建原始 XLS 的副本并将临时文件传递给 Excel 进程。

操作系统是 Windows Server 2008。Excel 版本来自 Office 2010。

我的问题:只要从命令行或从 IDE 交互式启动 Tomcat,一切正常。如果我将 Tomcat 作为服务启动(使用默认用户 SYSTEM),Excel 将无法打开临时文件说:

德语消息意味着 Excel 无法访问该文件,因为该文件不存在、被另一个进程锁定或以某种方式被写锁定。

我验证了该文件存在并且它是一个可读的 Excel 文档(我可以使用 Excel 交互方式打开它)。

我的猜测是,Windows 拒绝 EXCEL 子进程访问我的文件,因为它是由它不信任的 java 进程创建的。

当 Tomcat 作为 Windows 服务运行时,如何让 Excel 访问该文件?

编辑:异常消息的英文版

解决 方案在此处找到解决方案链接。我必须创建文件夹

手动。似乎在 Windows Server 2008 上,Excel 在以 SYSTEM 身份运行时需要此文件夹,但如果缺少则不会创建。

感谢您的提示。

0 投票
0 回答
267 浏览

java - Jacob 无法在 Windows XP 上连接到 iTunes

我有一个用户收到此错误:

当我尝试使用 Jacob 与 iTunes 对话时,我没有遇到这样的问题。我找到了这篇文章,但我没有使用 64 位的问题(我使用的是始终为 32 位的 Windows XP)。我认为 Windows XP 可能是问题所在,因为我的大多数客户使用的是 Windows 7 或 8,并且没有报告此问题。

0 投票
1 回答
1232 浏览

java - 使用 jacob 库删除和更新 Outlook 联系人

我正在使用 jacob 库。使用 jacob 库并按照教程,我可以在 Outlook 中添加联系人。现在我想使用 jacob 删除和更新该联系人。我想知道有什么方法可以使用 jacob 删除 Outlook 联系人。

我正在使用此代码在 Outlook 中添加联系人。这里的电子邮件 ID 是唯一 ID。

0 投票
1 回答
2062 浏览

java - Jacob 连接到远程计算机以获得 WMI 支持

我正在尝试使用 java 和 Jacob 连接到远程计算机,以获取有关远程计算机的一些 WMI 信息。

对于 localhost 我使用下面的代码,它工作正常。

但是,如果我将 localhost 更改为另一个 ip/主机名,我会收到以下错误:

引发异常的行是:

编辑

我尝试使用传递用户名/密码WbemScripting

但我收到了这个错误:

我该如何解决?如何传递用户名/密码以及是否需要域???

我正在使用 Windows 8,我正在尝试连接到 win8/win7/winxp/win2003server 计算机。

0 投票
0 回答
744 浏览

java - JACOB 事件注册

每当幻灯片放映开始或结束时,我都尝试使用 JACOB 获取回调,使用以下命令:

但是,我有点不解,上面的结果是:

有没有人有任何想法?搜索时间很短。我尝试使用 4 参数构造函数DispatchEvents,提供“Powerpoint.Application”和 powerpoint exe 的完整路径作为最后两个参数,但没有区别。

0 投票
1 回答
891 浏览

java - JACOB 获取窗口的 HWND

我正在寻找使用 Java/JACOB 获取 powerpoint 窗口的本机窗口句柄。MSDN 文档似乎表明应该可以只获取“ HWND”属性,所以我正在尝试这样:

但是,我似乎无法以这种方式获取窗口句柄 - 我收到以下错误:

这是图书馆中的错误,还是我在这里做错了什么/误解了什么?后者很有可能,因为我对雅各布完全陌生。无论哪种方式,我应该如何使用 JACOB 获取 Powerpoint 窗口的 HWND?

0 投票
0 回答
524 浏览

java - 如何使用 java (jacob) 编写/更改 visio 文件

我找不到任何关于如何使用 java 编写 visio 文件的有用信息,并且可能浏览了网络上的每篇文章。如果发现很多关于用 c#、vb 和其他东西做的东西,但找不到我需要的东西。

我也发现了这个,但我不确定这个(逆向工程)是否可以满足我的需要>>如何自动生成 MS Visio 图表?<<。因为我真的想用我的 java 应用程序创建一个 vsd 文件,将大量数据写入其中(例如从 xml 文件),然后用 visio 打开它以检查和更正该数据。

我花了一段时间才找到这个

http://www.java2s.com/Open-Source/Java/Development/jacob-1.15/com/jacob/samples/visio/Catalogvisio.htm << 这至少允许我打开一个 visio 文件。

但我仍然需要知道如何写入该文件并在之后保存。

简而言之,我的实际尝试是使用 jacob,但我不知道如何使用该 com 桥执行“在位置 x,y 处添加块”之类的操作。有那个东西的文档吗?

任何帮助,将不胜感激

谢谢