使用Office 2010在W7上运行Ruby版本1.9.1p430。
我正在尝试捕获DocumentBeforeClose事件,但我甚至无法接近它以使其工作!
我已经使用了Excel处理SheetSelectionChange的一些示例。它没有任何问题。
使用相同的过程,我想处理上面的Word事件。
我的代码在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中的Word事件。
答案 0 :(得分:1)
我认为你应该在WIN32OLE_EVENT调用中使用Word对象而不是doc对象,因为'ApplicationEvents4'与Word.Application有关。
ev = WIN32OLE_EVENT.new(wd, 'ApplicationEvents4')
PS
不要忘记消息循环
loop do
WIN32OLE_EVENT.message_loop
end