前回の続きコンパイルしてできた、ocxをCabに圧縮し、IE上で表示させJavaScriptから関数を呼び出します。
適当なフォルダーに作成したActiveXコントロールをコピーして同フォルダー内にinfファイルを作成します。
詳しくはこちらに情報があります。
書き方は「ファイル名=セクション名」です。
インストール処理は上から順に発生するそうなので、ファイルが多い場合、依存関係に注意したほうがいいかもです。
Cabファイルに一緒に梱包するなら、thiscabでいいです。
他にも〈LINK TYPE="GENERIC" VALUE="URL"〉〈/LINK〉なんて書いてURLからインストールさせることもできるみたいです。
clsid
idlファイルのコントロールクラスのuidを入力
・FileVersion
ファイルのバージョンを入力
RegisterServer
この値をnoに設定すると登録されず、レジストリに登録情報が書き込まれません。
Cabに圧縮できればなんでもいいです、Visual Studio 2012にはCabプロジェクトが消えてたので cabarc.exeを使用した方法で作成します。
※Visual Studio 2010をお持ちでしたらそちらで作成しても構いません。
ここからダウンロード
ダウンロードしたexeを作業フォルダーにコピー
コマンドプロンプトをたちあげて作業ディレクトリに移動し下記を実行
CABARC -s 6144 n cabファイル名 圧縮するファイル
スペース区切りで圧縮するファイルを挙列していってください。
ボタンをクリックした時にActiveXの関数からメッセージを受け取るようにします。
CLASSID - セットアップ情報ファイルと同じclsidを入力
CODEBASE - Cabファイルの場所。#Versionの値を変更するとバージョンアップした時にIEが自動で更新してくれます。
今回署名も何もしていないため、IEのセキュリティーを下げないと実行できません。
安全だとマークする方法、署名方法については、こちら参照ください。
警告を無視しつつ実行すると無事に動作することが確認できます。
セットアップ情報ファイルの作成
インターネット上でActiveXコントロールを配布するには作成したActiveXコントロールと一緒にセットアップ情報ファイルをCabファイルに圧縮してやることで可能になるそうです。適当なフォルダーに作成したActiveXコントロールをコピーして同フォルダー内にinfファイルを作成します。
[version] signature="$CHICAGO$" AdvancedINF=2.0 [Add.Code] AxGetOsVer.ocx=AxGetOsVer.ocx [AxDxVer.ocx] file-win32-x86=thiscab clsid={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} FileVersion=1,0,0,1 RegisterServer=yes
[version]
ここは特に変更する必要はないようです。[Add.Code]
インストールする全てのコントロールやDLLの一覧を挙列していきます。書き方は「ファイル名=セクション名」です。
インストール処理は上から順に発生するそうなので、ファイルが多い場合、依存関係に注意したほうがいいかもです。
[セクション名] (サンプルでは[AxDxVer.ocx])
file-win32-x86Cabファイルに一緒に梱包するなら、thiscabでいいです。
他にも〈LINK TYPE="GENERIC" VALUE="URL"〉〈/LINK〉なんて書いてURLからインストールさせることもできるみたいです。
clsid
idlファイルのコントロールクラスのuidを入力
・FileVersion
ファイルのバージョンを入力
RegisterServer
この値をnoに設定すると登録されず、レジストリに登録情報が書き込まれません。
CABの作成
先ほど作成したセットアップ情報ファイルと、[thiscab]と書いたコントロール、DLL等をCabに圧縮します。Cabに圧縮できればなんでもいいです、Visual Studio 2012にはCabプロジェクトが消えてたので cabarc.exeを使用した方法で作成します。
※Visual Studio 2010をお持ちでしたらそちらで作成しても構いません。
ここからダウンロード
ダウンロードしたexeを作業フォルダーにコピー
コマンドプロンプトをたちあげて作業ディレクトリに移動し下記を実行
CABARC -s 6144 n AxGetOsVer.CAB AxGetOsVer.ocx AxGetOsVer.inf
スペース区切りで圧縮するファイルを挙列していってください。
IE上で動作させる。
適当にHtmlファイルを作成して下記のようにOBJECTタグを設定ボタンをクリックした時にActiveXの関数からメッセージを受け取るようにします。
<!DOCTYPE html> <html> <head><title></title></head> <body> <object ID="AxGetOsVer" CLASSID="clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" CODEBASE="AxGetOsVer.CAB#Version=1,0,0,1"> </object> <input type="button" onclick="runAXHello();" /> <script type="text/javascript"> function runAXHello() { if (AxGetOsVer) { var msg = AxDxVer.GetHelloWorld(); alert(msg); } } </script> </body> </html>
CODEBASE - Cabファイルの場所。#Versionの値を変更するとバージョンアップした時にIEが自動で更新してくれます。
今回署名も何もしていないため、IEのセキュリティーを下げないと実行できません。
安全だとマークする方法、署名方法については、こちら参照ください。
警告を無視しつつ実行すると無事に動作することが確認できます。
前回の続きコンパイルしてできた、ocxをCabに圧縮し、IE上で表示させJavaScriptから関数を呼び出します。
適当なフォルダーに作成したActiveXコントロールをコピーして同フォルダー内にinfファイルを作成します。
詳しくはこちらに情報があります。
書き方は「ファイル名=セクション名」です。
インストール処理は上から順に発生するそうなので、ファイルが多い場合、依存関係に注意したほうがいいかもです。
Cabファイルに一緒に梱包するなら、thiscabでいいです。
他にも〈LINK TYPE="GENERIC" VALUE="URL"〉〈/LINK〉なんて書いてURLからインストールさせることもできるみたいです。
clsid
idlファイルのコントロールクラスのuidを入力
・FileVersion
ファイルのバージョンを入力
RegisterServer
この値をnoに設定すると登録されず、レジストリに登録情報が書き込まれません。
Cabに圧縮できればなんでもいいです、Visual Studio 2012にはCabプロジェクトが消えてたので cabarc.exeを使用した方法で作成します。
※Visual Studio 2010をお持ちでしたらそちらで作成しても構いません。
ここからダウンロード
ダウンロードしたexeを作業フォルダーにコピー
コマンドプロンプトをたちあげて作業ディレクトリに移動し下記を実行
CABARC -s 6144 n cabファイル名 圧縮するファイル
スペース区切りで圧縮するファイルを挙列していってください。
ボタンをクリックした時にActiveXの関数からメッセージを受け取るようにします。
CLASSID - セットアップ情報ファイルと同じclsidを入力
CODEBASE - Cabファイルの場所。#Versionの値を変更するとバージョンアップした時にIEが自動で更新してくれます。
今回署名も何もしていないため、IEのセキュリティーを下げないと実行できません。
安全だとマークする方法、署名方法については、こちら参照ください。
警告を無視しつつ実行すると無事に動作することが確認できます。
セットアップ情報ファイルの作成
インターネット上でActiveXコントロールを配布するには作成したActiveXコントロールと一緒にセットアップ情報ファイルをCabファイルに圧縮してやることで可能になるそうです。適当なフォルダーに作成したActiveXコントロールをコピーして同フォルダー内にinfファイルを作成します。
[version] signature="$CHICAGO$" AdvancedINF=2.0 [Add.Code] AxGetOsVer.ocx=AxGetOsVer.ocx [AxDxVer.ocx] file-win32-x86=thiscab clsid={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} FileVersion=1,0,0,1 RegisterServer=yes
[version]
ここは特に変更する必要はないようです。[Add.Code]
インストールする全てのコントロールやDLLの一覧を挙列していきます。書き方は「ファイル名=セクション名」です。
インストール処理は上から順に発生するそうなので、ファイルが多い場合、依存関係に注意したほうがいいかもです。
[セクション名] (サンプルでは[AxDxVer.ocx])
file-win32-x86Cabファイルに一緒に梱包するなら、thiscabでいいです。
他にも〈LINK TYPE="GENERIC" VALUE="URL"〉〈/LINK〉なんて書いてURLからインストールさせることもできるみたいです。
clsid
idlファイルのコントロールクラスのuidを入力
・FileVersion
ファイルのバージョンを入力
RegisterServer
この値をnoに設定すると登録されず、レジストリに登録情報が書き込まれません。
CABの作成
先ほど作成したセットアップ情報ファイルと、[thiscab]と書いたコントロール、DLL等をCabに圧縮します。Cabに圧縮できればなんでもいいです、Visual Studio 2012にはCabプロジェクトが消えてたので cabarc.exeを使用した方法で作成します。
※Visual Studio 2010をお持ちでしたらそちらで作成しても構いません。
ここからダウンロード
ダウンロードしたexeを作業フォルダーにコピー
コマンドプロンプトをたちあげて作業ディレクトリに移動し下記を実行
CABARC -s 6144 n AxGetOsVer.CAB AxGetOsVer.ocx AxGetOsVer.inf
スペース区切りで圧縮するファイルを挙列していってください。
IE上で動作させる。
適当にHtmlファイルを作成して下記のようにOBJECTタグを設定ボタンをクリックした時にActiveXの関数からメッセージを受け取るようにします。
<!DOCTYPE html> <html> <head><title></title></head> <body> <object ID="AxGetOsVer" CLASSID="clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" CODEBASE="AxGetOsVer.CAB#Version=1,0,0,1"> </object> <input type="button" onclick="runAXHello();" /> <script type="text/javascript"> function runAXHello() { if (AxGetOsVer) { var msg = AxDxVer.GetHelloWorld(); alert(msg); } } </script> </body> </html>
CODEBASE - Cabファイルの場所。#Versionの値を変更するとバージョンアップした時にIEが自動で更新してくれます。
今回署名も何もしていないため、IEのセキュリティーを下げないと実行できません。
安全だとマークする方法、署名方法については、こちら参照ください。
警告を無視しつつ実行すると無事に動作することが確認できます。
Add a comment