Win32 OLE event sink & Quit

Hi,

I’m trying to setup a win32 ole callback that would notify me that the
application that was launched has quit, in order to release the process
from memory.

The code I’m playing with looks like:

  @@access = WIN32OLE.new('Access.Application')
  @@access.OpenCurrentDatabase(@database)

  begin

    @@event_sink = WIN32OLE_EVENT.new(@@access, <???>)
    stop_listening = false
    @@event_sink.on_event("Quit") do |*args|
      puts "Access application has quit!"
      stop_listening = true
    end

    WIN32OLE_EVENT.message_loop until stop_listening

  rescue Exception => e
    puts e.message
  end

I cannot find any event interface that would notify me that the MS
Access application has quit. I checked with “Simple OLE Browser”, but no
luck. And most examples regarding WIN32OLE_EVENT are done with Internet
Explorer.

Does anyone have an idea?

Thanks,

Philippe L.

On Mon, Apr 21, 2008 at 12:28 PM, Philippe L.
[email protected] wrote:

Thanks,

Philippe L.

WMI Events? Here’s a VBScript example that will notify when a process
terminates.

http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=true

On a side note, this is my third WMI related post in two days. I hope
I’m not annoying anyone :wink:

hth,

Gordon

Gordon T. wrote:

  @@access = WIN32OLE.new('Access.Application')

http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=t
rue

Hi,

In fact, I’d like to get notified when the MS Access database quits
because as long as there is a WIN32OLE object pointing at it, the
process does not terminate. So I’m afraid this WMI script (the link does
not work by the way) won’t help here!

Philippe