- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找使用 Java/JACOB 获取 powerpoint 窗口的 native 窗口句柄。 MSDN documentation似乎暗示应该可以只获取“HWND”属性,所以我正在尝试这样做:
app = new ActiveXComponent("PowerPoint.Application");
Dispatch presentations = app.getProperty("Presentations").toDispatch();
presentation = Dispatch.call(presentations, "Open", fileLocation).toDispatch();
EnumVariant windows = new EnumVariant(Dispatch.get(presentation, "Windows").toDispatch());
Dispatch window = windows.nextElement().toDispatch();
Dispatch.get(window, "HWND"); //Exception here
但是,我似乎无法通过这种方式获取窗口句柄 - 我收到以下错误:
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: HWND
Description: 80020003 / Member not found.
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:625)
at com.jacob.com.Dispatch.get(Dispatch.java:788)
at tester.PowerpointSlideShowRunner.<init>(PowerpointSlideShowRunner.java:54)
at tester.PowerpointSlideShowRunner.main(PowerpointSlideShowRunner.java:154)
这是库中的错误,还是我做错了什么/误解了什么?后者很有可能,因为我对 Jacob 是全新的。无论哪种方式,我应该如何使用 JACOB 获取 Powerpoint 窗口的 HWND?
最佳答案
您链接的 MSDN 文档是针对 .NET Interop 程序集的,它包装了 PowerPoint COM 对象模型以供 .NET 托管代码使用,而不是针对 COM 对象模型本身。
互操作程序集中的元数据显示,DocumentWindow
的 COM 接口(interface)中实际上存在一个未记录的 HWND
属性,但它带有特殊类型库属性 FUNCFLAG_FRESTRICTED
indicates that它
is intended for system-level functions or functions that type browsers should not display.
我想这就是您尝试通过 DocumentWindow
调度接口(interface)按名称调用此属性失败的原因。
但是,Interop 程序集元数据还显示此受限属性的 DISPID(调度标识符)的值为 0x7e4
。我对 JACOB 库不是很熟悉,但我相信有一个覆盖允许您通过 DISPID 而不是名称获取属性的值:
Dispatch.get(window, 0x7e4);
我建议您尝试一下。
关于java - JACOB 获取窗口的 HWND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665261/
我在运行下面的代码时遇到异常线程“main”com.jacob.com.ComFailException中的异常:无法共同创建对象。 我上网寻求帮助。有些网站说我需要注册我的 dll。我尝试使用 re
我正在尝试编写使用 autohotkey 的 Java 代码,特别是 autoitx4java 实现。我有进口 import java.text.SimpleDateFormat; import ja
我在 .net 中创建了一个 dll,并使用 jacob 从 java 程序调用它。因为昨天我有 windows 7 32 位操作系统,所以程序运行成功。现在我格式化并安装 windows 7 64
我有一个 eclipse 插件,它使用 Jacob 连接到 COM 组件。但在我完全关闭插件后,.exe 文件仍卡在 Windows 进程中。 我使用ComThread.InitMTA(true)进行
我在两个随后启动的相同线程中使用 JACOB 时遇到了一个奇怪的问题。我有一个实用程序类,它使用静态 ActiveXObject 字段将各种请求分派(dispatch)到 WMI。第一个线程工作正常。
我的环境是 Java 7,Windows 7 - 64 位。所以这是我的要求和我遵循的程序 我想从 Java 执行一个名为 test.dll 的库 我首先下载了 latest version of j
我有以下 VB 代码: Set QuoteRequest = Quotes.Add With QuoteRequest .No = 1 .QuoteCode(0)="101"
我正在研究如何使用 JACOB 在计算机上拉取本地组的成员。 我能做什么:使用单独的 WMI 查询从计算机中提取本地组列表。我不能做的:拉取这些组的成员。 我使用下面的文章给出了程序的框架:Using
我的应用程序需要使用 java 列出计算机上的所有可用还原点 ( Link )。 SystemRestore 类位于默认命名空间中,而不是 CIMV2 中。当我尝试以下代码时: public clas
我正在寻找使用 Java/JACOB 获取 powerpoint 窗口的 native 窗口句柄。 MSDN documentation似乎暗示应该可以只获取“HWND”属性,所以我正在尝试这样做:
我设法加载了两个 dll System.load("C:\\Program Files (x86)\\EXAMPLE Client\\Bin\\EXAMPLE.Client.SDK.dll")
我在 Java 中实现了 Web 服务,在 Java 中实现了 Web 服务客户端。 webservice 和 webservice 客户端都在不同的项目中,我是使用 jacob 创建的 dll。 我
我的应用程序与 jacob 发送电子邮件。现在我想在某些情况下打开邮件并等待用户按发送(或者他关闭邮件) ActiveXComponent axcOutlook = new ActiveXCompon
我正在解决库路径和雅各布的问题。好的,让我们从头开始吧。 我正在编写一个需要使用 jacob 库等的应用程序 - 该应用程序必须作为 JAR 文件运行,这就是整个目标。我正在使用 System.loa
我正在使用 JACOB(Java COM Bridge)库从我的 Windows 操作系统调用注册的 COM 对象。我花了一段时间才弄清楚 JACOB 的工作原理并设置好一切。所以我目前的问题是: A
我一直在我的 java 程序中使用 JACOB 来工作,但是每次尝试从 ITTrackCollection 获取 ITTrack 时都会遇到错误。 这是给出错误的行: a.add(t.getItem(
我目前正在开发一个基于 java 的跨平台软件分发器,我选择使用 native 操作系统机制来防止用户事先进行任何设置。 我为 SSH2 选择了 JSCH,为 Java 选择了 JACOB。我意识到
我正在尝试使用 java 和 Jacob 连接到远程计算机,以获取有关远程计算机的一些 WMI 信息。 对于本地主机,我使用下面的代码,它工作正常。 String host = "localh
我正在尝试使用 JACOB 与 COM 对象交互。 我能够调用对象的初始化方法(并获取其属性),但没有获取任何事件。代码引用如下。 我有一个示例 HTML+Javascript 页面(在 IE 中运行
我正在使用雅各布库。使用 jacob 库并遵循 this教程我可以在 Outlook 中添加联系人。现在我想使用 jacob 删除并更新该联系人。我想知道有什么方法可以使用 jacob 删除 Outl
我是一名优秀的程序员,十分优秀!