- PR -

ローカルのHTMLファイルからC#で作成したユーザーコントロールを表示したい

1
投稿者投稿内容
モコ
会議室デビュー日: 2008/11/26
投稿数: 6
投稿日時: 2008-11-26 17:28
件名の件についてご存知の方いらっしゃらないでしょうか?

過去ログを検索しまして、以下を参考にしましたが、
ローカル保存したHTML(HTM)ファイルではコントロールが表示されませんでした。

▼IEで管理されるアプリケーションについてhttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=4164&forum=7&start=0

やはりIISを使用しないとコントロールの表示は難しいでしょうか?

やりたいこととしては、IEにラジオボタンとボタンを表示し、
ボタンをクリックすると、選択したラジオボタンの情報をファイルに書き出すみたいなことをやりたいだけです。

開発はVS.Net2003でOSはXP SP2です。

よろしくお願い致します。
モコ
会議室デビュー日: 2008/11/26
投稿数: 6
投稿日時: 2008-11-26 19:36
HTMLとしては以下の通りです。
------------------------------------------------------------
<html>
<body>
<object id="ControlLibrary1"
classid="http:WindowsControlLibrary1.dll#WindowsControlLibrary1.UserControl1"
height="500" width="500" VIEWASTEXT>
</object>
</body>
</html>
------------------------------------------------------------
ユーザコントロールはC#で作成しました。

作成したHTMLとDLLを同じフォルダに置き、
HTMLをダブルクリックしてもコントロールの表示領域に×が表示されてしまいます。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2008-11-26 19:43
http://www.users.gr.jp/blogs/hidori/archive/2004/11/17/6131.aspx
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=41948&forum=7&start=0
モコ
会議室デビュー日: 2008/11/26
投稿数: 6
投稿日時: 2008-11-26 21:31
ご回答ありがとうございます。

上のURLの通りにDLLを作成しましたが、結果は同じで×が表示されました。
下のURLは「ComClass」がキーのようですが、こちらはVB.net用と思われるので参考にはできませんでした。

単純なことなので何か方法があると思いますが、なかなかうまくいきません。
どなたかわかる方、ご教授お願い致します。
モコ
会議室デビュー日: 2008/11/26
投稿数: 6
投稿日時: 2008-11-27 11:28
表示できました!
ただし、このDLLとHTMLを別のPCに持っていくと表示されません。。
DLLが認識されていないと思われるのですが、ご存知の方、ご教授願います。

ちなみに以下のように、GUID属性をつけるように変更しました。
正しいですか??

【コントロール側】
[ComVisibleAttribute(true)]
[GuidAttribute("XXXX")]
public class UserControl1 : System.Windows.Forms.UserControl
【HTML側】
<object id="a"
classid="clsid:XXXX"
height="500" width="500" VIEWASTEXT>
モコ
会議室デビュー日: 2008/11/26
投稿数: 6
投稿日時: 2008-11-28 12:16
解決しました。

以下を参考にDLLをGACに登録できるようにし、
http://itmemo.blog.so-net.ne.jp/2008-02-16

別PCにDLLを持っていき、GACに登録し、更にregasmで登録したら表示されました。

んー、なんで動いたのかよくわかりません。
「厳密な名前」というのが必要なのでしょうか?
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-11-28 12:54
引用:
んー、なんで動いたのかよくわかりません。



COM (ActiveX) なんですから、registry への登録が必要ですね。
ついでに client 側の user は対象の ActiveX を事前に install していない限り、動作させるためには一定以上の権限が必要になりますね。

引用:
「厳密な名前」というのが必要なのでしょうか?



Reference くらい読みましょう。

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2008-11-28 12:55 ]
モコ
会議室デビュー日: 2008/11/26
投稿数: 6
投稿日時: 2008-11-28 16:16
コメントありがとうございます。
勉強不足でした。
Referenceを参照します。
1

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