How to receive events (eg. user mouse clicks) from IE

Roger Upole rupole at hotmail.com
Mon May 23 00:20:07 EDT 2005


<cal_2pac at yahoo.com> wrote in message 
news:1116792093.323847.312700 at g49g2000cwa.googlegroups.com...
...
> The problem is that msdn documentation says that in order to identify
> the element that was clicked - one has to query on IHTMLWindow2::event
> property on iHTMLWindow2 interface to get IEventOBj interface and then
> from there - use query interfce to get to the id of the element.
>
> How do I do this in python? ie. I have this code
> class Doc_Events(doc_mod.HTMLDocumentEvents):
>    def Ononclick(self):
>        print 'onClick fired '
> and I see onClick being trapped.
> Now I need to go and get a reference to the iHTMLWindow2 interface. For
> this I need to get a reference to doc_mod (as far as I can see). How do
> I get that in the OnonClick method above.

To get the IHTMLWindow2, you can just use self.parentWindow
inside the event hander, and then get the event from it.  And then
the event's srcElement should be what you need.

class Doc_Events(doc_mod.HTMLDocumentEvents):
    def Ononclick(self):
        print 'onclick'
        ev=self.parentWindow.event
        src=ev.srcElement
        print 'tagName:',src.tagName,'name:',src.getAttribute('name')

For clicking on google's input field, this yields
tagName: INPUT name: q

>
> b) You had mentioned PumpWaitingMessages in the previous posting. I
> first encountered this on newsgroup postings. None of the standard
> books (python on win32 / python developer) seem to explain this in
> detail although this seems to be commonly used. Though I understand
> this now - my problem is that there seems to be a lack of cohesive
> explanation on how python ties up with COM (despite a good chapter 12

PumpWaitingMessages is just a way to ensure that normal message processing
(window messages, events, dde, etc) happens while python code is running.
Normally you don't need it, but every once in a while you hit a situation 
where
blocking occurs.

For how exactly python interacts with COM, the source is your best bet.

        Roger





----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= East/West-Coast Server Farms - Total Privacy via Encryption =---



More information about the Python-list mailing list