Aximp.exe (Windows Form ActiveX 控制項匯入工具)

ActiveX 控制項匯入工具可以將 ActiveX 控制項在 COM 類型程式庫中的類型定義,轉換成 Windows Form 控制項。

Windows Form 只能裝載 Windows Form 控制項,也就是衍生自 Control 的類別。 Aximp.exe 會產生 ActiveX 控制項的包裝函式類別,可以在 Windows Form 上裝載。 這可讓您使用相同的設計階段支援和程式設計方法論,以適用於其他 Windows Form 控制項。

若要裝載 ActiveX 控制項,您必須產生衍生自 AxHost 的包裝函式控制項。 這個包裝函式控制項包含基礎 ActiveX 控制項的執行個體。 它知道如何與 ActiveX 控制項進行通訊,但是會顯示為 Windows Form 控制項。 這個產生的控制項會裝載 ActiveX 控制項並公開其屬性、方法和事件,如同這些產生的控制項。

此工具會自動與 Visual Studio 一起安裝。 若要執行此工具,請使用 Visual Studio 開發人員命令提示字元或 Visual Studio 開發人員 PowerShell

在命令提示字元中,請輸入下列項目:

語法

aximp [options]{file.dll | file.ocx}  

備註

引數 描述
file 原始程式檔的名稱,包含要轉換的 ActiveX 控制項。 檔案引數必須有 .dll 或 .ocx 副檔名。
選項 描述
/delaysign 指定 Aximp.exe 使用延遲簽署來簽署產生的控制項。 您必須使用 /keycontainer:/keyfile:/publickey: 選項來指定此選項。 如需延遲簽署程序的詳細資訊,請參閱延遲簽署組件
/help 顯示工具的命令語法和選項。
/keycontainer:containerName 使用 containerName 所指定之金鑰容器中的公開/私密金鑰組,以強式名稱簽署產生的控制項。
/keyfile:filename 使用 filename 中找到的發行者正式公開/私密金鑰組,以強式名稱簽署產生的控制項。
/nologo 隱藏 Microsoft 程式啟始資訊顯示。
/out:filename 指定要建立的組件名稱。
/publickey:filename 使用由 filename 所指定之檔案中找到的公開金鑰,以強式名稱簽署產生的控制項。
/rcw:filename 使用指定的執行階段可呼叫包裝函式,而不是產生新的執行階段可呼叫包裝函式。 您可以指定多個執行個體。 目前的目錄用於相對路徑。 如需詳細資訊,請參閱執行階段可呼叫包裝函式
/silent 隱藏顯示成功訊息。
/source 產生 Windows Form 包裝函式的 C# 原始程式碼。
/verbose 指定詳細資訊模式;顯示其他進度資訊。
/? 顯示工具的命令語法和選項。

Aximp.exe 會一次轉換整個 ActiveX 控制項類型程式庫並產生一組組件,其中包含通用語言執行平台中繼資料,並控制原始類型程式庫中定義之類型的實作。 根據下列模式為產生的檔案命名:

適用於 COM 類型的 Common Language Runtime Proxy:progid.dll

適用於 ActiveX 控制項的 Windows Forms Proxy (其中 Ax 代表 ActiveX):Axprogid.dll

注意

如果 ActiveX 控制項的成員名稱符合 .NET Framework 中定義的名稱,則 Aximp.exe 在建立 AxHost 衍生類別時就會在成員名稱前面加上 "Ctl"。 例如,如果您的 ActiveX 控制項有一個名為 "Layout" 的成員,它在 AxHost 衍生類別中就會被重新命名為 "CtlLayout",因為 Layout 事件是在 .NET Framework 中定義的。

您可以使用 Ildasm.exe (IL 反組譯工具) 這類工具,檢查這些產生的檔案。

不支援使用 Aximp.exe 來產生 ActiveX WebBrowser 控制項 (shdocvw.dll) 的 .NET 組件。

當您在 shdocvw.dll 上執行 Aximp.exe 時,必定會在執行這個工具的目錄中建立另一個名為 shdocvw.dll 的檔案。 如果您將此產生的檔案置於文件目錄中,可能會導致 Windows 檔案總管發生問題。 當電腦重新開機時,Windows 會在搜尋 system32 目錄之前,先在文件目錄中尋找 shdocvw.dll 的複本。 其會使用在文件中找到的複本,並嘗試載入受控包裝函式。 Windows 檔案總管將無法正常運作,因為其必須依賴 shdocvw.dll 版本 (位於 system32 目錄) 中的轉譯引擎。 如果發生這種問題,請刪除文件目錄中的 shdocvw.dll 複本,然後將電腦重新開機。

範例

下列命令會產生 Media Player 控制項 msdxm.ocx 的 MediaPlayer.dll 和 AxMediaPlayer.dll。

aximp c:\systemroot\system32\msdxm.ocx  

另請參閱