C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: C#のActiveXでこれはできますか?


(過去ログ 34 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■17038 / inTopicNo.1)  C#のActiveXでこれはできますか?
  
□投稿者/ popo (19回)-(2008/04/15(Tue) 22:21:21)

分類:[.NET 全般] 

こんにちは、ActiveXのプログラミングが必要になり、ここ数日いろいろと調べておりますが
C#でどこまでできるのかが、詳しくわかりません。

過去ログや他のサイトなどから
http://bbs.wankuma.com/index.cgi?mode=al2&namber=1316&KLOG=2

.NETFrameworkがインストールされている環境では、出来るとあります。
実際にローカル環境でRegAsm.exeを使ってdllを登録して、ActiveXのようにhtmlに<OBJECT>タグで埋め込んだプログラムが動作することは確認しました。

この場合、RegAsm.exeを使って手動で登録を行ったわけですが、配布時に、(.NETFrameworkがインストールされていると仮定して)自働登録させることはできるのでしょうか?

また、ClickOnce(2.0)というのは、exeを実行するものなのでしょうか?(伝わりませんよね ;;)
私が今回やりたいことは、html上のボタンを押すと、C#プログラムを呼び出して、処理を行うというもので、
C#プログラムそのものは裏にあるべき存在です。
RegAsm.exe登録のケースはこれが可能でしたが(JavaScriptで呼び出しを行いました)、ClickOnceもこういったことが可能なのでしょうか?

その他、「html上のボタンを押すと、C#プログラムを呼び出して、処理を行う」を実現する方法などありましたらご教授いただければと思います。よろしくお願いします。



引用返信 編集キー/
■17040 / inTopicNo.2)  Re[1]: C#のActiveXでこれはできますか?
□投稿者/ はつね (602回)-(2008/04/15(Tue) 22:50:44)
2008/04/15(Tue) 22:51:35 編集(投稿者)

No17038 (popo さん) に返信

作成したActiveXってActiveXコントロールじゃなくてActiveX DLL?
自動登録ってできましたっけ?

ブラウザ上でボタンをクリックして呼び出されるのは、WEBサーバ側ではなくてクライアント側の理由はなんでしょうか。
もしかして、クライアント側のなんらかのリソースを使いたいとかですか?


> html上のボタンを押すと、C#プログラムを呼び出して、処理を行う

まさにClickOnceの事だと思います。


引用返信 編集キー/
■17046 / inTopicNo.3)  Re[2]: C#のActiveXでこれはできますか?
□投稿者/ 中博俊 (1274回)-(2008/04/16(Wed) 00:16:28)
中博俊 さんの Web サイト
やったことないけど、cabにしてauthenticode署名してやればインストールできたと思います。
もしかしたら一発ではうまくいかないから自作インストーラもどき(regasmするやつ)をcabで送り込んで、そいつがアセンブリを登録するって感じにしないといけないかもしれませんが。

ロジックだけの話ならサーバでやればいいんじゃないかなぁ
引用返信 編集キー/
■17061 / inTopicNo.4)  Re[3]: C#のActiveXでこれはできますか?
□投稿者/ popo (20回)-(2008/04/16(Wed) 11:20:03)
2008/04/16(Wed) 12:58:59 編集(投稿者)

>はつねさん
ご回答ありがとうございます。

>作成したActiveXってActiveXコントロールじゃなくてActiveX DLL?
>自動登録ってできましたっけ?

すいません。ActiveX DLLのことかもしれません。(名称など、まだあまり分かっていない部分があります..)
登録対象はdllではなくcabで行っていました。あいまいですいません。

具体的に行ったことは、hoge.dll を含む hoge.cabを作成して
RegAsm.exe /codebase hoge.cab で手動登録を行い。

htmlに
<OBJECT id="hoge" classid="clsid:xxx" codebase="hoge.cab"></OBJECT>
で埋め込んで、

JavaScriptで
document.hoge.Open();

でhoge.dll内のOpen()が呼ばれ処理がおこなわれたことを確認しています。

上記で
「RegAsm.exe /codebase hoge.cab で手動登録を行い。」を自動化する方法を探しています。


>ブラウザ上でボタンをクリックして呼び出されるのは、WEBサーバ側ではなくてクライアント側の理由はなんでしょうか。
>もしかして、クライアント側のなんらかのリソースを使いたいとかですか?

はい、ずばりクライアント側のリソースを使用するためです。



>> html上のボタンを押すと、C#プログラムを呼び出して、処理を行う

>まさにClickOnceの事だと思います。


ClickOnceについて調べが十分ではありませんが、ClickOnceを使えば実現可能と
いうことでしょうか。
前回説明不足の部分があったかと思いますが、html上のボタンを押すとC#内のメソッドを呼び出すという意味でした。。
今回具体的な内容を書かせていただきました。

ClickOnceを使ってFromはいっさい表示させずに、JavascriptとC#のメソッドの
やりとりを行うことは可能でしょうか。
そうであれば、かなりうれしいです!

参考サイトや書籍などご存知でしょうか。




>中博俊さん
ご回答ありがとうございます。

>やったことないけど、cabにしてauthenticode署名してやればインストールできたと思います。
>もしかしたら一発ではうまくいかないから自作インストーラもどき(regasmするやつ)をcabで送り込んで、そいつがアセンブリを登録するって感じにしないといけないかもしれませんが。

つまり、cabでの配布ついてもっと調べれば可能ということでしょうか?(そのあたりもやったことがありません..)
自作インストーラもどき(regasmするやつ)というのは、@RegAsm.exe相当のものを自分で作成するという意味でしょうか
もしくは、ARegAsm.exe(NETFrameworkがインストール前提)を使って登録処理を行うようなものを作成するということでしょうか

これらについて参考になるサイトや書籍をご存知でしょうか?


>ロジックだけの話ならサーバでやればいいんじゃないかなぁ

クライアント側のリソースを使うため、使用せざるおえない状況です。。。



引用返信 編集キー/
■17116 / inTopicNo.5)  Re[2]: C#のActiveXでこれはできますか?
□投稿者/ 渋木宏明(ひどり) (705回)-(2008/04/17(Thu) 01:04:28)
渋木宏明(ひどり) さんの Web サイト
> 作成したActiveXってActiveXコントロールじゃなくてActiveX DLL?
> 自動登録ってできましたっけ?

.cab を作れば可能ではあります。

引用返信 編集キー/
■17139 / inTopicNo.6)  Re[3]: C#のActiveXでこれはできますか?
□投稿者/ popo (21回)-(2008/04/17(Thu) 18:10:13)
>渋木宏明(ひどり)さん

ご回答ありがとうございます。

> .cab を作れば可能ではあります。

つまり.cab について調べれば可能ということですね!ありがとうございます。
探してはみたのですが、参考になるサイトや書籍がありましたら、よろしくお願いします。

引用返信 編集キー/
■17239 / inTopicNo.7)  Re[4]: C#のActiveXでこれはできますか?
□投稿者/ 渋木宏明(ひどり) (708回)-(2008/04/19(Sat) 20:36:58)
渋木宏明(ひどり) さんの Web サイト
>>.cab を作れば可能ではあります。
>
> つまり.cab について調べれば可能ということですね!ありがとうございます。

微妙に違います。と、思います。

VB6 や VC6 なんかで作った、ふつーの ActiveX DLL や ActiveX コントロールは、所定の形式で .CAB 形式にパッケージすることで自動登録を行うことができます、というだけのことです。

それがつまり、すぐに

> RegAsm.exeを使って手動で登録を行ったわけですが、配布時に、(.NETFrameworkがインストールされていると仮定して)自働登録させることはできるのでしょうか?

まで保証するというものではありません。

.NET Framework がインストール済みの環境に関していれば、.CAB から RegAsm.exe を起動することができれば、原理的にはそれで自動登録が可能なはずです。

ですが、.CAB で「正しい RegAsm.exe の位置」を知ることができるかどうかとか、そういう細かいところまでは実験したことがないので僕にはわかりません。

> 探してはみたのですが、参考になるサイトや書籍がありましたら、よろしくお願いします。

ごめんなさい、僕がこの辺をいじくっていたのはだいぶ前のことなのです。

今現在、現存するものがどれだけあるかは知りません。

引用返信 編集キー/
■17240 / inTopicNo.8)  Re[5]: C#のActiveXでこれはできますか?
□投稿者/ 渋木宏明(ひどり) (709回)-(2008/04/19(Sat) 20:39:32)
渋木宏明(ひどり) さんの Web サイト
ちなみに、こういう場合僕ならどうするかとゆーと

・VC++ で ATL または MFC で「ガワ」となる ActiveX コントロールを作る
・C# でユーザコントロールを作って「ガワ」に載せる
・↑を CAB にパッケージする

という手段を取ると思います。
引用返信 編集キー/
■17270 / inTopicNo.9)  Re[6]: C#のActiveXでこれはできますか?
□投稿者/ popo (22回)-(2008/04/21(Mon) 11:35:02)
>渋木宏明(ひどり) さん
ご回答ありがとうございます。

ここ数日自分でもいろいろと調べてみましたが、簡単にはいかないということが分かりました。。

渋木宏明(ひどり) さんがおっしゃっているように、Cabから「RegAsm.exe」を起動するインストーラを作成する
方法が可能ではないかと考えましたが、現状は保留となりました。


>・VC++ で ATL または MFC で「ガワ」となる ActiveX コントロールを作る
>・C# でユーザコントロールを作って「ガワ」に載せる
>・↑を CAB にパッケージする

そのような方法もあるのですね!

参考にさせていただきます。



ご回答いただいた方々ありがとうございました。
どのような方法であれ検討して、ActiveX DLLの開発は行いますので、何かありましたら、
ご教授いただければうれしいです。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -