Windows Form ActiveX 控制項匯入工具 (Aximp.exe)
更新:2007 年 11 月
ActiveX 控制項匯入工具可以將 ActiveX 控制項在 COM 型別程式庫中的型別定義,轉換成 Windows Form 控制項。
Windows Form 只能裝載 Windows Form 控制項,也就是衍生自 Control 的類別。Aximp.exe 產生 ActiveX 控制項的包裝函式類別 (Wrapper Class),可以在 Windows Form 上裝載。這可讓您使用相同設計階段支援和程式設計方法論,以適用於其他 Windows Form 控制項。
若要裝載 ActiveX 控制項,您必須產生衍生自 AxHost 的包裝函式控制項。這個包裝函式控制項包含基礎 ActiveX 控制項的執行個體。它知道如何與 ActiveX 控制項進行通訊,但是它顯示為 Windows Form 控制項。這個產生的控制項裝載 ActiveX 控制項並公開其屬性、方法和事件,如同這些產生的控制項。
aximp [options]{file.dll | file.ocx}
備註
引數 |
說明 |
---|---|
file |
原始程式檔 (Source File) 的名稱,包含要轉換的 ActiveX 控制項。檔案引數必須有 .dll 或 .ocx 副檔名。 |
選項 |
描述 |
---|---|
/delaysign |
指定 Aximp.exe 使用延遲簽名來簽名產生的控制項。您必須指定這個選項來配合 /keycontainer:、/keyfile: 或 /publickey: 選項。如需延遲簽署處理序的詳細資訊,請參閱延遲簽署組件。 |
/help |
顯示工具的命令語法和選項。 |
/keycontainer:containerName |
使用 containerName 所指定之金鑰容器中的公開/私密金鑰組,以強式名稱進行簽署所產生的控制項。 |
/keyfile:filename |
使用 filename 中,發行者的正式公開/私密金鑰組,以強式名稱進行簽署所產生的控制項。 |
/nologo |
隱藏 Microsoft 程式啟始資訊顯示。 |
/out:filename |
指定要建立的組件名稱。 |
/publickey:filename |
使用由 filename 所指定之檔案中找到的公開金鑰,以強式名稱簽署產生的控制項。 |
/silent |
隱藏成功訊息的顯示。 |
/source |
產生 Windows Form 包裝函式的 C# 原始程式碼。 |
/verbose |
指定詳細資訊模式;顯示其他進度資訊。 |
/? |
顯示工具的命令語法和選項。 |
Aximp.exe 一次轉換整個 ActiveX 控制項型別程式庫,並產生一組含有 Common Language Runtime 中繼資料及控制原始型別程式庫中所定義的型別實作 (Implementation) 的組件。根據下列模式為產生的檔案命名:
適用於 COM 型別的 Common Language Runtime Proxy:progid.dll
適用於 ActiveX 控制項的 Windows Form Proxy (其中 Ax 代表 ActiveX):Axprogid.dll
注意事項: |
---|
如果 ActiveX 控制項的成員名稱符合 .NET Framework 中定義的名稱,則 Aximp.exe 在建立 AxHost 衍生類別 (Derived Class) 時就會在成員名稱前面加上 "Ctl"。例如,如果您的 ActiveX 控制項有一個名為 "Layout" 的成員,它在 AxHost 衍生類別中就會被重新命名為 "CtlLayout",因為 Layout 事件是在 .NET Framework 中定義的。 |
您可以使用 MSIL 反組譯工具 (Ildasm.exe) 這類工具,檢查這些產生的檔案。
不支援使用 RedBits 工具 (DevDiv) 來產生 ActiveX WebBrowser 控制項 (shdocvw.dll) 的 .NET 組件 (Assembly)。
當您在 shdocvw.dll 上執行 RedBits 工具 (DevDiv) 時,必定會在執行這個工具的目錄中建立另一個名為 shdocvw.dll 的檔案。如果這個產生的檔案是置於 Documents and Settings 目錄中,它將會對 Microsoft Internet Explorer 和 Windows 檔案總管造成問題。當電腦重新啟動時,Windows 會在搜尋 system32 目錄之前,先在 Documents and Settings 目錄中尋找 shdocvw.dll 的複本。它會使用在 Documents and Settings 目錄中找到的複本並且嘗試載入 Managed 包裝函式。Internet Explorer 和 Windows 檔案總管將無法正常運作,因為它們必須依賴位於 system32 目錄中之 shdocvw.dll 版本中的呈現引擎。如果發生這種問題時,請刪除 Documents and Settings 目錄中的 shdocvw.dll 複本,然後重新啟動電腦。
搭配 shdocvw.dll 以使用 RedBits 工具 (DevDiv) 來建立用於應用程式開發的 .NET 組件時,可能也會導致問題。在這個範例中,您的應用程式將會載入 shdocvw.dll 的系統版本和產生的版本,而且系統版本具有優先權。在這個範例中,當您試圖將 Web 網頁載入到 WebBrowser ActiveX 控制項內部時,系統會以 [開啟/儲存] 對話方塊提示使用者。當使用者按一下 [開啟] 時,Web 網頁將會在 Internet Explorer 內開啟。這種情形只會在使用執行 Internet Explore 第 6 版 (含) 以前版本的電腦上發生。若要避免這個問題,請使用 Managed WebBrowser 控制項或使用 Visual Studio 來產生 Managed shdocvw.dll,詳細資訊請參閱 HOW TO:將參考加入至型別程式庫。
範例
下列命令會產生 Media Player 控制項 msdxm.ocx 的 MediaPlayer.dll 和 AxMediaPlayer.dll。
aximp c:\systemroot\system32\msdxm.ocx