Rubí Ofimática - no puede obtener los controladores de eventos para trabajar en MS Word
-
01-10-2019 - |
Pregunta
Rubí versión 1.9.1p430 se ejecuta en W7 con Office 2010.
Estoy tratando de capturar el evento DocumentBeforeClose pero ni siquiera puede acercarse a conseguir que funcione!
He seguido algunos ejemplos usando Excel donde se manipula el SheetSelectionChange. Funciona sin ningún problema.
Usando el mismo proceso, quería manejar el caso anterior Palabra.
Mi código de falla en la declaración WIN32OLE_EVENT.new. Esto es lo que estoy utilizando:
require 'win32ole'
wd = WIN32OLE.connect('Word.Application')
wd.visible = true
doc = wd.Documents.Add
ev = WIN32OLE_EVENT.new(doc, 'ApplicationEvents4')
El error que consigo es:
ev = WIN32OLE_EVENT.new(doc, 'ApplicationEvents4')
RuntimeError: failed to query IConnectionPoint
HRESULT error code:0x80040200
he visto ampliamente para el contenido correcto para el nombre de la pileta en la declaración WIN32OLD_EVENT
pero esto es lo mejor que han llegado con y es obviamente! Incorrecta ??p>
Yo sería muy agradecido si alguien me puede apuntar en la dirección correcta. Yo estaría interesado en saber si alguien ha logrado manejar con éxito eventos Palabras del Rubí.
Solución
creo que debe utilizar objetos de Word en lugar del objeto doc en la llamada WIN32OLE_EVENT, debido a 'ApplicationEvents4' se refiere a Word.Application.
ev = WIN32OLE_EVENT.new(wd, 'ApplicationEvents4')
PS
No se olvide de bucle de mensajes
loop do
WIN32OLE_EVENT.message_loop
end