Rubí Ofimática - no puede obtener los controladores de eventos para trabajar en MS Word

StackOverflow https://stackoverflow.com/questions/3657070

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

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í.

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top