Solved

InternetExplorer object (SHDocVw.dll) for IE Automation

Posted on 2004-08-24
7
776 Views
Last Modified: 2012-06-27
I am working on a project where I need to automate IE.  I am writing the application in C# and controlling the browser using the InternetExplorer object (SHDocVw.dll).  So far I have been able to do everything I need to do (navigate to a particular site/page, manipulate elements on the page, populate form objects, submit forms, etc.).  However, I would like to be able to automate the process of saving files that are linked on a site.  For instance on the website are links to .pdf files, .csv files, word files, excel files, images, etc. that I need to download to the local drive.  If I attempt to access the files by their URL/Path on the website, the browser spawns the Open/Save dialog box, of which I have not been able to determine how to interact with.  And the "Always ask this" checkbox doesn't seem to make a difference.

I do not think I can use .NET's WebRequest/HttpWebRequest objects because I need to automate a login process on the site in order to access the files.  That's why I'm using IE Automation.  I cannot use WSH (Windows Scripting Host) as this application does contain other business rules and specialized functionality.

Basically my questions are:  
1.  using IE Automation (using the InternetExplorer object) can I download files (text or binary) from a site to the local machine.  Whether I interact with the Open/Save dialog box spawned by IE or access and download the files via another means, I do not care.  
2.  When IE spawns a dialog window (i.e. Open/Save, Windows Authentication, etc.) how can you interact with it (i.e. click "Save", fill in the login/password boxes, etc.).

If you know of a better way to do what I'm trying to do, please let me know.

I appreciate your help.  Thanks.
 
0
Comment
Question by:jkaina
7 Comments
 
LVL 15

Expert Comment

by:Timbo87
ID: 11887195
You can pass credentials to WebClient objects.

WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("username", "password", "domain");
wc.DownloadFile("http://www.example.com/file.pdf", @"c:\file.pdf");
0
 

Author Comment

by:jkaina
ID: 11887298
Actually, the site uses a proprietary login.  Basically it stores usernames and passwords in a database, upon login/validation, session variables are set, etc.  So it's not using windows authentication.  That's why I was trying IE Automation.  Anyhow, thank you for the response though.  I do appreciate your input.

I ended up figuring out how I could do it.  But again, thank you for the help.
0
 

Author Comment

by:jkaina
ID: 11887431
By the way... for the curious, the way i got this to work was to use DllImport to reference UrlMon and call the UrlDownloadToFile() method.  Thanks goes out to jkr for steering me in the right direction.
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

Accepted Solution

by:
ee_ai_construct earned 0 total points
ID: 11933617
Closed, 500 points refunded.
ee_ai_construct (replacement part #xm34)
Community Support Moderator
0
 
LVL 4

Expert Comment

by:brokeMyLegBiking
ID: 12236254
jkaina, I am trying to perform the same opperation of downloading files. I am encouraged by the fact that you were able to make it work. Do you mind posting a few more links on IE interaction, perhaps some of your sample code? I will have posted another question which you can respond to:  http://Q_21157773.html

Thanks!
0
 
LVL 4

Expert Comment

by:brokeMyLegBiking
ID: 12236256
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Flash (http://en.wikipedia.org/wiki/Adobe_Flash) has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with t…
Summary Displaying images in RichTextBox is a common requirement with limited solutions available. Pasting through clipboard or embedding into RTF content only support static images.  This article describes how to insert Windows control objects int…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question