[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Win32 OLE event sink & Quit

Philippe Lang

4/21/2008 5:29:00 PM

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 =3D WIN32OLE.new('Access.Application')
@@access.OpenCurrentDatabase(@database)

begin

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

WIN32OLE_EVENT.message_loop until stop_listening

rescue Exception =3D> 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

2 Answers

Gordon Thiesfeld

4/21/2008 7:34:00 PM

0

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

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

http://www.microsoft.com/technet/scriptcenter/scripts/default.msp...

On a side note, this is my third WMI related post in two days. I hope
I'm not annoying anyone ;-)

hth,

Gordon

Philippe Lang

4/22/2008 6:32:00 AM

0

Gordon Thiesfeld wrote:
> On Mon, Apr 21, 2008 at 12:28 PM, Philippe Lang
> <philippe.lang@attiksystem.ch> wrote:=20
>> Hi,
>>=20
>> 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.=20
>>=20
>> The code I'm playing with looks like:
>>=20
>> @@access =3D WIN32OLE.new('Access.Application')
>> @@access.OpenCurrentDatabase(@database)
>>=20
>> begin
>>=20
>> @@event_sink =3D WIN32OLE_EVENT.new(@@access, <???>)
>> stop_listening =3D false
>> @@event_sink.on_event("Quit") do |*args|
>> puts "Access application has quit!"
>> stop_listening =3D true
>> end
>>=20
>> WIN32OLE_EVENT.message_loop until stop_listening
>>=20
>> rescue Exception =3D> e
>> puts e.message
>> end
>>=20
>> 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.=20
>>=20
>> Does anyone have an idea?
>>=20
>> Thanks,
>>=20
>> Philippe Lang
>>=20
>>=20
>=20
> WMI Events? Here's a VBScript example that will notify when a
> process terminates.=20
>=20
>
http://www.microsoft.com/technet/scriptcenter/scripts/default.ms...
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