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 Lang

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

···

On Mon, Apr 21, 2008 at 12:28 PM, Philippe Lang <philippe.lang@attiksystem.ch> wrote:

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 Lang

Gordon Thiesfeld wrote:

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 Lang

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

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

···

On Mon, Apr 21, 2008 at 12:28 PM, Philippe Lang > <philippe.lang@attiksystem.ch> wrote: