Ruby版本1.9.19.1p430在W7上运行,使用Office 2010。

我正在尝试查看DocumentBeforeClose活动,但我什至无法接近它的工作!

我曾使用Excel进行了一些示例,其中处理了SheetSelectionChange。它没有任何问题。

使用相同的过程,我想处理上述单词事件。

我的代码在win32ole_event.new语句中失败。这是我正在使用的:

require 'win32ole'

wd = WIN32OLE.connect('Word.Application')
wd.visible = true
doc = wd.Documents.Add

ev = WIN32OLE_EVENT.new(doc, 'ApplicationEvents4')

我得到的错误是:

ev = WIN32OLE_EVENT.new(doc, 'ApplicationEvents4')
RuntimeError: failed to query IConnectionPoint
    HRESULT error code:0x80040200

我已经广泛寻找正确的内容,以了解水槽的名称 WIN32OLD_EVENT 声明,但这是我想出的最好的,显然是不正确的!

如果有人可以将我指向正确的方向,我将最感激。我有兴趣听到是否有人成功地处理了Ruby的单词事件。

有帮助吗?

解决方案

我认为您应该在win32ole_event调用中使用Word对象而不是DOC对象,因为“ ApplicationEvents4”与Word.Application相关。

ev = WIN32OLE_EVENT.new(wd, 'ApplicationEvents4')

PS
不要忘记消息循环

loop do
    WIN32OLE_EVENT.message_loop
end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top