You are currently offline, waiting for your internet to reconnect

Your browser is out-of-date

You need to update your browser to use the site.

Update to the latest version of Internet Explorer

How to use Visual C# to call a VBScript function on a Web page that is loaded in an ActiveX WebBrowser control in a Windows Forms application

INTRODUCTION
This article describes how to use Microsoft Visual C# to call a Microsoft Visual Basic Scripting Edition (VBScript) function on a Web page. Specifically, the Web page is loaded in an ActiveX WebBrowser control in a Windows Forms application.

To perform the procedures in the "More Information" section, you must already have the following items:Note The procedures in this article apply only to Windows Forms applications that contain an ActiveX WebBrowser control. If you are using a managed Windows Forms WebBrowser control in your application, do not perform the procedures in this article. For more information about the Windows Forms WebBrowser control, visit the following MSDN Web site:
MORE INFORMATION
The following procedures demonstrate how to call a VBScript function on a Web page that is loaded in an ActiveX WebBrowser control.

Add a reference to the Microsoft HTML Object Library (Mshtml.tlb)

Before you can call a VBScript function in an ActiveX WebBrowser control from a Windows Forms application, you must add a reference to the Microsoft HTML Object Library. To do this, follow these steps:
  1. Start Microsoft Visual Studio .NET or Microsoft Visual Studio 2005.
  2. On the File menu, point to Open, and then click Project.

    Note In Visual Studio 2005, click Project/Solution.
  3. Locate the project that you want to open, and then click Open.
  4. On the Project menu, click Add Reference.
  5. Click the COM tab.
  6. Select Microsoft HTML Object Library, click Select, and then click OK.

    Note In Visual Studio 2005, select Microsoft HTML Object Library, and then click OK.

Add a method that calls the VBScript function

After you add a reference to the Microsoft HTML Object Library, you can add a method that calls a VBScript function on a Web page that is loaded in an ActiveX WebBrowser control.

The following code sample demonstrates how to call a VBScript function on a Web page that is loaded in an ActiveX WebBrowser control. This code sample uses the IHTMLDocument.Script property in the Microsoft HTML Object Library to obtain access to the scripting object. The code sample then uses the InvokeMember method to call the VBScript function.

Note Replace axWebBrowser1 in the following code with the name of the ActiveX WebBrowser control instance that occurs in your application.
private object InvokeScript(string sFunction,object[] oParameters){    object oReturn = null;    mshtml.IHTMLDocument Doc = (mshtml.IHTMLDocument)this.axWebBrowser1.Document;    Type ScriptEng = Doc.Script.GetType();    try    {        oReturn = ScriptEng.InvokeMember(sFunction, System.Reflection.BindingFlags.InvokeMethod, null, Doc.Script, oParameters);    }    catch(Exception ex)    {        MessageBox.Show("Error invoking function: " + ex.Message,"InvokeScript - Exception", MessageBoxButtons.OK, MessageBoxIcon.Warning);    }    return oReturn;}
You can call this method by passing the name of the VBScript function and the parameters. The following code sample demonstrates how to use the previous code sample to call a VBScript function that has a parameter value of 100.

Note The VBScript function is named myVBScriptFunction.
String myFunction = "myVBScriptFunction";Object[] myParameters = { 100 };InvokeScript(myFunction, myParameters);
REFERENCES
For more information about the ActiveX WebBrowser control, visit the following MSDN Web site:
Properties

Article ID: 922275 - Last Review: 11/22/2007 07:18:22 - Revision: 1.8

  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbwindowsforms kbhowto kbinfo KB922275
Feedback
m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >>