How do you open an external file on a WebBrowser Control

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Rebeccardr
    New Member
    • May 2010
    • 3

    How do you open an external file on a WebBrowser Control

    I have a problem where I am using the following code to open an external avi file.

    I am outputting the code to external html file for debugging purposes and after I have set my security settings in internet explorer it is working fine.

    However, when running through a webBrowser control it does nothing. Is there someway of setting the security settings on my webBrowser control or am I missing something completely.

    Code I have is :


    Code:
     public Form1()
            {
                InitializeComponent();
                MemoryStream HTMLMemory = new MemoryStream();
                StreamWriter HTMLWriter = new StreamWriter(HTMLMemory);
               
                HTMLWriter.Write("<html><body><input type=button onClick=\" window.location='file:///C:/RDR_Expert_Advisory/Anomaly_ID_surfaces_2010_v.avi'\" value=\"Open File\">");
              
                HTMLWriter.Flush();
                HTMLMemory.Position = 0;
                webBrowser1.DocumentStream = HTMLMemory;
    
                // Print code to a txt file
                StreamWriter sw = new StreamWriter("C:\\RDR_Expert_Advisory\\Test.htm");
                StreamReader sr = new StreamReader(HTMLMemory);
                sw.WriteLine(sr.ReadToEnd());
                sw.Close();
                HTMLMemory.Position = 0;
            }
    Last edited by tlhintoq; May 25 '10, 02:48 PM. Reason: [CODE] your code here [/code] Please use code tags
  • Rebeccardr
    New Member
    • May 2010
    • 3

    #2
    Originally posted by Rebeccardr
    I have a problem where I am using the following code to open an external avi file.

    I am outputting the code to external html file for debugging purposes and after I have set my security settings in internet explorer it is working fine.

    However, when running through a webBrowser control it does nothing. Is there someway of setting the security settings on my webBrowser control or am I missing something completely.

    Code I have is :


    Code:
     public Form1()
            {
                InitializeComponent();
                MemoryStream HTMLMemory = new MemoryStream();
                StreamWriter HTMLWriter = new StreamWriter(HTMLMemory);
               
                HTMLWriter.Write("<html><body><input type=button onClick=\" window.location='file:///C:/RDR_Expert_Advisory/Anomaly_ID_surfaces_2010_v.avi'\" value=\"Open File\">");
              
                HTMLWriter.Flush();
                HTMLMemory.Position = 0;
                webBrowser1.DocumentStream = HTMLMemory;
    
                // Print code to a txt file
                StreamWriter sw = new StreamWriter("C:\\RDR_Expert_Advisory\\Test.htm");
                StreamReader sr = new StreamReader(HTMLMemory);
                sw.WriteLine(sr.ReadToEnd());
                sw.Close();
                HTMLMemory.Position = 0;
            }
    Anyone know why I get a script error on this code?

    "An error has occurred in the script on this page."
    Line 1
    Char 2
    Error: Access is denied
    Code 0
    URL: about:blank

    Comment

    • nukefusion
      Recognized Expert New Member
      • Mar 2008
      • 221

      #3
      Hi Rebeccardr,

      Welcome to the forums.

      I've only really used the WebBrowser control a couple of times and both times I remember it being quite painful. Trying to get JavaScript to work can be a nightmare.

      Try something along these lines:

      Code:
              public Form1()
              {
                  InitializeComponent();
                  MemoryStream HTMLMemory = new MemoryStream();
                  StreamWriter HTMLWriter = new StreamWriter(HTMLMemory);
                  HTMLWriter.Write("<html><body><input ID=\"myButton\" type=button value=\"Open File\">");
      
                  HTMLWriter.Flush();
                  HTMLMemory.Position = 0;
                  webBrowser1.DocumentStream = HTMLMemory;
                  while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
                  webBrowser1.Document.GetElementById("myButton").Click += element_Click;
      
                  // Print code to a txt file 
                  StreamWriter sw = new StreamWriter("C:\\RDR_Expert_Advisory\\Test.htm"); 
                  StreamReader sr = new StreamReader(HTMLMemory);
                  sw.WriteLine(sr.ReadToEnd());
                  sw.Close();
                  HTMLMemory.Position = 0;
              }
      
              private void element_Click(object sender, HtmlElementEventArgs e)
              {
                  webBrowser1.Url = new Uri("file:///C:/RDR_Expert_Advisory/Anomaly_ID_surfaces_2010_v.avi");
              }
      Hope it helps.

      Comment

      • Rebeccardr
        New Member
        • May 2010
        • 3

        #4
        That works! Thank you!!!

        Comment

        Working...