- PR -

ASP.NETの画面に貼り付け可能なActiveXコントロールの作り方

1
投稿者投稿内容
gt-f
会議室デビュー日: 2006/10/05
投稿数: 18
投稿日時: 2008-09-18 19:11
gt-fと申します。

vb2005、asp.net、IISを使って、
ActiveXコントロールをブラウザ経由でユーザにダウンロードさせ、
クライアントで実行させるWebページを作ろうとしています。

ActiveX、ASPに関してはまだ勉強中で、考えかたが間違えているかも
しれませんが、やりたいことは以下の通りです。

1.自作のActiveXコントロールを作成する
2.上記コントロールを、ASP.NET Webアプリケーションのツールボックスに表示させる
3.ASP.NET Webアプリケーションの画面に、自作コントロールをドラッグする

※ActiveXにはこだわっておりません(.netのアセンブリでも可)

【やったこと】
1. VC++2005のMFC ActiveXコントロール(OCX)を作成した
2. VB2005でクラスライブラリを作成後、ユーザコントロールを追加し、
 アセンブリを作成した(以下を参考にしました)。
 http://www.users.gr.jp/blogs/hidori/archive/2004/11/17/6131.aspx

3. 1のocx、2のdllを「アイテムの選択」からASP.NET Webアプリケーション
 のツールボックスに表示させた。

【困っていること】
上記3において、自作コントロールがツールボックスに表示はされたものの、
グレー表示(非活性)になっており、Webアプリケーションの画面にドラッグできない。

【お聞きしたいこと】
 asp.netの画面にツールボックスからドラッグし、IISでwebアプリとして公開
 することで、クライアントPCのブラウザ経由でダウンロードして実行できるような
 コントロールは、どの言語で作れば良いのでしょうか。
 (上記手順のどこが違っておりますでしょうか)

 参考になるURLでも構いませんので、ご教示の程、よろしくお願いいたします。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2008-09-19 10:54
単にカスタムのテキストボックスを配置したいだけなら、ASP.NETのカスタムコントロールを作成すればいいわけで、あえてActiveXを選択した理由には要件が有るんですか?

クライアントの資源を使いたい?
リッチなUIを提供したい?
_________________
かるあ のメモスニペット
gt-f
会議室デビュー日: 2006/10/05
投稿数: 18
投稿日時: 2008-09-19 11:58
かるあ様

レスありがとうございます。説明不足ですみません。

ActiveXを選択した理由は、以下の通りです。

 ・顧客が(できれば)ActiveXでの開発を希望している
 ・クライアントPCにインストール済みのライブラリ(VC++にて作成)の関数を、
  ActiveX等から呼び出す必要がある

ためです。

ActiveXでは実現が難しく、代替策があるようであれば、そちらで提案してみよう
と思っております。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2008-09-19 12:37
引用:

2.上記コントロールを、ASP.NET Webアプリケーションのツールボックスに表示させる
3.ASP.NET Webアプリケーションの画面に、自作コントロールをドラッグする



て出来るんでしたっけ?

object タグを手書きするんじゃだめなんですか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2008-09-19 12:40
引用:

 ・クライアントPCにインストール済みのライブラリ(VC++にて作成)の関数を、
  ActiveX等から呼び出す必要がある



という要件があるなら、VC++ で ActiveX コントロールを作るのが無難でしょう。
ATL を使えばダウンロードモジュールを小さく仕上げることもできるし。

ただ、「クライアントPCにインストール済みのライブラリ」てやつの配備状況によっちゃ、そのライブラリが公開する機能呼び出しに苦労するかもしれませんが。
_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
gt-f
会議室デビュー日: 2006/10/05
投稿数: 18
投稿日時: 2008-09-22 16:13
渋木宏明(ひどり)様

レス、どうもありがとうございます。
返信が遅くなりすみません。割り込みの仕事に追われていました。

引用:

渋木宏明(ひどり)さんの書き込み (2008-09-19 12:37) より:
引用:

2.上記コントロールを、ASP.NET Webアプリケーションのツールボックスに表示させる
3.ASP.NET Webアプリケーションの画面に、自作コントロールをドラッグする



て出来るんでしたっけ?

object タグを手書きするんじゃだめなんですか?




出来ないみたいです。

VC++ MFCのActiveXコントロールで実装することにしました。
実装方法について、あちこちのサイトで調べているところです。

お手数ですが、引き続きご教示ください。
まずは、ActiveXコントロールに配置したボタンを押したら、
c:\tmp\text.txt に "abc" と出力するようなサンプルを作ろうとしております。
以下の手順で進めました。

【やったこと】
・VC++にて、MFCのActiveXコントロールを、BUTTONに基づいて作成
・コントロールには、メソッド1つ、リソースビューのIDD_PROPPAGE_xxxに
 ボタンを1つ配置。処理内容はいずれもローカルへのテキスト出力。
・ActiveXコントロールをobjectタグでHTMLに貼り付ける
・IISで実行

【お聞きしたいこと】
IISで実行しても、ActiveXコントロールが表示されないのですが、
(アイコン?のみ、表示されている)
ActiveXコントロールに配置したボタンを、ブラウザに表示させることは
できないのでしょうか。


[ メッセージ編集済み 編集者: gt-f 編集日時 2008-09-22 16:34 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2008-09-22 21:41
引用:

ActiveXコントロールに配置したボタンを、ブラウザに表示させることは
できないのでしょうか。



出来ます。

ActiveX コントロールを配布するための CAB ファイルを作って、IIS に配備すればよろしいんじゃないかと。

MFC コントロールおよび ATL コントロール用の署名付き CAB ファイルの作成
http://msdn.microsoft.com/ja-jp/library/4kex18w6.aspx
gt-f
会議室デビュー日: 2006/10/05
投稿数: 18
投稿日時: 2008-10-02 18:23
渋木宏明(ひどり)様

レス、どうもありがとうございます。
おかげさまで、cabファイルを作成し、
JavascriptからActiveXコントロールのメソッドを呼び出す
ところまではうまく行きました。

ディジタル署名その他はまだ未着手ですが、一先ず報告させて
いただきました。
1

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