[python-win32] Internet Explorer constants

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Sep 5 11:32:59 CEST 2008


En Fri, 05 Sep 2008 05:23:01 -0300, Tim Golden <mail at timgolden.me.uk>  
escribió:

> Gabriel Genellina wrote:
>> Hello
>>  I want to control Internet Explorer. This is what I have so far:
>>  import win32com.client
>> from win32com.client.gencache import EnsureDispatch
>> url = "..."
>> IE = EnsureDispatch("InternetExplorer.Application")
>> IE.Navigate(url)
>> IE.Visible = 1
>>  It works fine and shows the requested page. Now I want to use the  
>> "Save As" command. Looks like I should call the
>> IWebBrowser2.ExecWB method, passing IDM_SAVEAS as the command and  
>> MSOCMDEXECOPT_DONTPROMPTUSER in the options. But I don't know how to  
>> obtain the value for such constants... I could dig into the C header  
>> files looking for them, but is there some other way?
>>  The ExecWB method is documented here  
>> http://msdn.microsoft.com/en-us/library/aa752117(VS.85).aspx
>
> The usual way to get at constants after a Dispatch
> is via the win32com.client.constants object. In this
> case, the constant you want is OLECMDID_SAVEAS which...
>
> <code>
> import win32com.client
>
> IE = "InternetExplorer.Application"
> ie = win32com.client.gencache.EnsureDispatch (IE)
>
> print win32com.client.constants.OLECMDID_SAVEAS </code>

Ok, thanks! Looks like these are the names to use instead:

IE.ExecWB(
   constants.OLECMDID_SAVEAS,
   constants.OLECMDEXECOPT_DONTPROMPTUSER,
   filename,
   None)

Altough the ...DONTPROMPTUSER option doesn't work - the Save As dialog  
always appears. Some kind of permission or safety measure, I presume.

My original intent was to save the file using the .mht format, but that  
format is not listed on the Save As dialog. I'll investigate using  
IMessage.CreateMHTMLBody but that's a different topic.

-- 
Gabriel Genellina



More information about the python-win32 mailing list