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

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

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

VB:ActiveX コントロールのレジストリ登録確認


(過去ログ 2 を表示中)

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

■1563 / inTopicNo.1)  VB:ActiveX コントロールのレジストリ登録確認
  
□投稿者/ kshr 二等兵(1回)-(2005/10/13(Thu) 15:40:54)

分類:[VB6以前] 


分類:[VB6以前] 

VB:ActiveX コントロールのレジストリ登録確認

あまり関係は無いとは思いますが開発環境を記述
・WindowsXP SP2
・VisualBasic 6.0 SP6

質問(Exe名/Ocx名は適当に書いています)
システムのEXE(System.EXE)と自作したコントロールを複数(数は未定:Ctl1〜?.Ocx)
作成し、System.EXEから動的にCtl*.Ocxを呼び出して使用しています。
「Public WithEvents ctlExtender As VBControlExtender」

ここから、お聞きしたい事を記述
1.使用対象のOCXがレジストリに登録されている事を確認する方法
2.Ver違いによるレジストリ再登録処理の為に情報を取得する(レジストリとOCX)

やりたくない事を記述
1.On Error Resume Next使用にて、レジストリへの登録解除後、再登録
2.Error処理にてOCX読み込み失敗時にレジストリへの登録処理

以上が質問です。
色々と検索してはみたのですが、うまく検索に引っ掛ける事ができませんでした。
よろしくお願いいたします。

0
引用返信 編集キー/
■1564 / inTopicNo.2)  Re[1]: VB:ActiveX コントロールのレジストリ登録確認
□投稿者/ まどか 曹長(20回)-(2005/10/13(Thu) 16:09:23)

分類:[VB6以前] 

> System.EXEから動的にCtl*.Ocxを呼び出して使用しています。
>
> 1.使用対象のOCXがレジストリに登録されている事を確認する方法

CreateObject()をOn Error Resume Nextで実行するのが一番手っ取り早いのですが。。。
やりたくないのであれば、インスタンス作成するApp.Class名をレジストリの
HKEY_CLASSES_ROOTから検索するとか。
TypeLibInformationを使ってファイルからタイプライブラリが取得できるかどうかとか。
この場合、インスタンスが作成可能かどうかは別問題。

> 2.Ver違いによるレジストリ再登録処理の為に情報を取得する(レジストリとOCX)

上記のTypeLibInformationが使えそうです。
#参照設定から探してください。

> やりたくない事を記述
> 1.On Error Resume Next使用にて、レジストリへの登録解除後、再登録

理由はわかりませんが、個人的には活用すべきものというスタンスです。

> 2.Error処理にてOCX読み込み失敗時にレジストリへの登録処理

たぶんアドインみたいなものと察しますが、結局この処理に行き着くような。。。

0
引用返信 編集キー/
■1566 / inTopicNo.3)  Re[2]: VB:ActiveX コントロールのレジストリ登録確認
□投稿者/ kshr 二等兵(2回)-(2005/10/14(Fri) 11:29:56)

分類:[VB6以前] 

No1564に返信(まどかさんの記事)

返信頂きありがとうございます。>まどか様

ご想像通り、アドインの様な事をしています。

>>やりたくない事を記述
>>1.On Error Resume Next使用にて、レジストリへの登録解除後、再登録
>
> 理由はわかりませんが、個人的には活用すべきものというスタンスです。
>
>>2.Error処理にてOCX読み込み失敗時にレジストリへの登録処理
>
> たぶんアドインみたいなものと察しますが、結局この処理に行き着くような。。。

本当はError発生時(インスタンス不可時)に登録解除処理後、再登録し、再処理を
行えばいいと考えていたのですが・・・上司にゴミが残る可能性がある為、チェック
をしてくれと・・・

インスタンス時にErrorが発生した場合に、Removeすればゴミにならない気がするのですが・・・

ありがとうございました。
検討し、Error処理にて回避をするか、チェック処理を追加するかを決定したいと思います。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -