- PR -

ASP.NET vs プラグイン

投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-05-26 19:29
ActiveXコントロール+ASP.NETで実装する方向で実装することにしました。
ここで、追加質問です。

これまでもActiveXコントロールは使用していたのですが、
インストーラを作成し、人力で数十台のPCにインストールしていました。。。

そこでAcrobatReaderのように、
「データを開こうとした際、端末に必要なActiveXコントロールが
インストールされていなかったら、インストーラのリンクを表示する。
または、インストール確認メッセージを表示する。」
ということをやりたいです。

どのようにインストールされているかどうかをチェックすればよいのでしょうか?
現在は、レジストリ登録で拡張子で判別させ作成したファイル内のリンク先を
ActiveXコントロールで表示させています。(同じような実装方法した方はいないのかな?)
今はむなしく文字列がだらだら表示されてしまいます。。。

ActiveX インストール 自動といったキーワードで検索調べているのですが、
なかなか見つかりません。
きっかけだけでも、ご教授願います。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-05-27 00:23
引用:

BB.NKさんの書き込み (2005-05-26 19:29) より:
「データを開こうとした際、端末に必要なActiveXコントロールが
インストールされていなかったら、インストーラのリンクを表示する。
または、インストール確認メッセージを表示する。」


いや、普通はWEBブラウザでActiveX使うなら、ページを開いたときにWEBサーバーから自動でダウンロード&インストールされるように作っておく物なんですが。開発言語に何を使っているのか知らないので具体的なページは紹介しませんが、「ActiveX CABファイル 作成」とかでぐぐれば直ぐに情報を得られると思います。

文字通りAcribatReaderの様にユーザーが別途インストールし、WEBブラウザからの自動インストールを行はないのであれば、VBScriptかJavaScriptでインスタンスを作ってみれば良いかと。インスタンスが作れなければ、インストールされていないと言う方向で。

引用:

現在は、レジストリ登録で拡張子で判別させ作成したファイル内のリンク先を
ActiveXコントロールで表示させています。(同じような実装方法した方はいないのかな?)
今はむなしく文字列がだらだら表示されてしまいます。。。


・・・?
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-06-06 12:02
少し整理した結果自分の勘違いにやっと気づきました。
自分がやっていたのはActiveX EXEでした。

ご教授いただいた通りCABファイルを作成して、
ActiveX EXEおよびその他必要なINI等を.INFファイルに記述して、
CABファイルを作成しました。

[INFファイル]
コード:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
TEST.exe=TEST.exe
TEST.ini=TEST.ini
・・・・

[TEST.exe]
file-win32-x86=thiscab
RegisterServer=yes
clsid={xxxx-xxxx-xxxx-xxxx-xxxx}
FileVersion=1,0,0,1

[TEST.ini]
file-win32-x86=thiscab
RegisterServer=no
FileVersion=1,0,0,1

・・・・


上記のようにINFファイルを記述し、
CABファイル作成まではできました。
次に、スタートページでCABファイルを使用してインストールさせるために、
作成したTEST.CABを同じディレクトリに配置し、次のように記述しました。
コード:
<html>
<head></head>
<body>
 <object classid="xxxx-xxxx-xxxx-xxxx-xxxx" codeBase="TEST.CAB#version=1,0,0,1">
 </object>
</body>



しかし、ブラウザからスタートページを表示させてもインストーラが走ることはありません。
これらの記述に間違いがありますでしょうか?
また、そのほかに必要な作業があるのでしょうか?
よろしくお願いします。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2005-06-06 15:06
CABファイルに署名をしていないと思われますので、IEのセキュリティでダウンロードを無効化されていると思います。

IEの設定のセキュリティでレベルのカスタマイズすると「未署名のActiveXコントロールのダウンロード」が無効になっているはずです。

また署名をしても信頼済みのルート証明書がないと警告もしくはダウンロードが無効化されます。

BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-06-06 15:21
お返事ありがとうございます。

調査中ですので、署名はまだ行っていません。
そこで、IEのセキュリティは調整して、ダイアログを表示するようにしています。
(市販されているコントロールの署名付きサンプルはダウンロードされるので問題ないと思います。)

少し疑問に思ったのですが、
ActiveXには、EXE、DLL、コントロール(OCX)がありますが、
どの場合もCABファイルでダウンロード可能なのでしょうか?
今私がやっているのは、EXEです。

また、EXE、DLL、OCXの選定がまだあいまいです。
各々のメリット・デメリット等調べたいのですが、
何かよいページはありますでしょうか。
重ねてよろしくお願いいたします。
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-06-07 09:36
コードが違いました。。。
コード:

<html>
<head></head>
<body>
<object classid="clsid:xxxx-xxxx-xxxx-xxxx-xxxx" codeBase="TEST.CAB#version=1,0,0,1">
</object>
</body>


classidに"clsid:"が漏れていました。すみません。
因みに、CABファイルではなくインストーラ等(EXE)を記述しても
自動インストール可能でした。

続けて、EXE、DLL、OCXの長所短所を調べてみます。

[編集]
調べたらすぐ見つかりました。
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9810/db_solu/

[ メッセージ編集済み 編集者: BB.NK 編集日時 2005-06-07 10:13 ]
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-06-29 13:04
重ね重ねすみませんが、追加で質問です。
ActiveXコントロールを作成し、CABファイルで自動インストールを考えています。
コード:
<object classid="clsid:xxx....." codeBase="TEST.cab#version=n,n,n,n">
・・・
</object>


classidはWebフォームにOCXを貼り付けた際に自動的に記述されます。
一方、CABファイルではなくインストーラまたはコマンドからレジストリに登録した場合、
自動的に記述されたclassidと意図的にインストールしたclassidが異なります。(当然)
ただ、どちらにしてもインストール済みの場合は再インストールされることはないようです。

ここで質問なのですが、インストールされているか否かはレジストリにclassidが
登録されているかで判断しているのだと思っていたのですが、違うのでしょうか?
やりたいことはできたのですが、この部分がひっかかっています。
ご教授願います。(自分でも調査続けます)

スキルアップ/キャリアアップ(JOB@IT)