程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 用C#編寫ActiveX控件

用C#編寫ActiveX控件

編輯:.NET實例教程

ActiveX控件支持自定義程序接口。利用這種方法,外部可以訪問控件的事件和屬性,web開發者可以自動操作他們的Web頁面,等同於一般的桌面應用的功能。

介紹

作為一個Web應用程序開發者我們想提供給我們的用戶具有更強功能的應用程序。我們想為用戶通過腳本提供像打印流,本地Socket程序,本地線程這樣功能的程序,但是正如我們所知由於任何標准浏覽器出於Internet斷連結構和安全約束,完成這樣的任務十分困難。還好有了ActiveX帶來了實現的可能。

用C#編寫ActiveX類

先寫一個包含所有方法屬性定義的接口ASignatures。通過在浏覽器中執行JavaScript來訪問這些方法或屬性。接口中所有成員是抽象並公開的。ActiveX類Aclass繼承自這個接口。在ActiveX類上我們必須指名其ClassInterfaceType是AutoDal(*注:指示自動為類生成雙重接口並向COM公開。為該類接口生成類型信息並在類庫中發布)。一般AutoDual是不被推薦使用的因為它有版本限制。我們這裡采用只是出於學習的目的。在類中我們寫兩個方法Fname()和Sname()和一個屬性Age。在例子中返回基本數據類型,其實它也可以實現更復雜的數據類型。



using System;
using
 System.Runtime.InteropServices;
namespace
 ANamespace 
{

  public interface
 ASignatures
  {
    string
 FName();
    string SName();
    int Age { get
;}  
  }

  [ClassInterface(ClassInterfaceType.AutoDual)]
  public class
 AClass :ASignatures
  {
    public string
 FName()
    {
      return "Very"
;
    }
    public string
 SName()
    {

      return "Happy";
    }
    public int
 Age
    {
      get { return 24
; }
    }
  }
}

 

 

編譯ActiveX控件

對那些不知道如何在Visual Studio IDE外編譯的,你必需找到C#編譯器 csc.exe在下列文件夾中:

\Windows\Microsoft.Net\Framework\v2.0.xxxxx

把你的Aclass.cs文件在放在csc.exe這個文件夾中。進入命令行中執行如下命令:

csc /t:library AClass.cs

客戶端注冊組件

你可以通過多種途徑注冊組件。例如:創建安裝文件或者自解壓文件可以迅速的從浏覽器中下載。我們的示例簡單的在客戶端命令行模式進行注冊。在相同的文件夾下執行下面命令:

regasm AClass.dll /tlb /codebase

必須確定客戶端已經安裝了.Net Framework。

使用ActiveX控件

通過JavaScript創建ActiveX控件,調用方法和屬性,返回的值顯示在對話框中。下面代碼告訴我們如何訪問ActiveX控件的屬性和方法。

<Html>

<head>

  <script language="Javascript">

    <!-- 讀取 ActiveX 對象  -->

    var x = new ActiveXObject("ANamespace.AClass");

 

    <!-- 訪問方法 -->

    alert(x.FName());

    alert(x.SName());

 

    <!-- 訪問屬性 -->

    alert(x.Age);

  </script>

</head>

<body>

</body>

</Html>

在Internet Explorer中運行(*注:需要在本地安全設置中啟用“對未標記為可安全執行腳本的ActiveX初始化並執行腳本”),如果是Firefox或者Safari浏覽器則需要API的插件。

總結

在這篇文章中,我們知道如何通過C#編寫的ActiveX控件來增強Web應用的功能。實際的ActiveX程序可以實現更復雜的應用,尤其是圖形和多媒體。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved