コンニチワ
OCXコントロールをシステムに登録する方法について
教えてください。
登録用のソフトやセットアップファイルに含めてインストールするのが
一般的だと思いますがこのようなことをせずに
手動で簡単に登録する方法はあるのでしょうか?
詳しい方、経験のある方
わかりにくい質問かもしれませんが
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

regsvr32 を使用すれば出来ますが...



 これは、コマンドラインツールの為に、DOS窓等で使用して下さい。

 使用方法
regsvr32 hogehoge.ocx
 が登録で
regsvr32 -u hogehoge.ocx
 が登録解除です。

 hogehoge.ocxを、自分のOCXのフルパスに置き換えて下さいね。
    • good
    • 0

以下の方法が最も簡単だと思います。



1.C:\Windows\System\regsvr32.exeのショートカットをデスクトップに作成
2.目的のOCXファイルをそのショートカット上にドラッグ&ドロップ

以上
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QWMP.OCX(Windows Media PlayerのOCX)の使用し方について

色々と参考書や雑誌などに目を通しましたが、
WMP.OCXのコンポーネントについての使い方が記載されたものが全く無く大変悩んでおります。
もし分かる方が、おられましたらお願い致します。

Aベストアンサー

そのファイルは名前からしてWindows Media Playerのものだと思いますが、どうやら、一般プログラマが自分のプログラムに利用するためにあるカスタムコントロールではないようです。
とくにVBで使うためのものではないようで。
おそらく、再配布ライセンスもありません。

ちょっと古い話ですが、Active Movieコントロールである、amovie.ocxについても同様でした。
それでも個人ユースで、色々と作ってしまいましたが。

使い方とまではいきませんが、プロパティやそのちょっとした説明だけなら、F2を押して現れるオブジェクトブラウザで確認することができるはずです。
私もamovie.ocxについてはそれでなんとか解析しました。

チャレンジあれ。

はぽるんでした。

QOCX内のコントロール名の取得方法

VB6で下記の記述で実行しようと思ったのですが
OCX内のコントロール名を取得できませんでした。

Dim strBtnName as String
Dim objBtnName as Object

For Each objBtnName In me.controls
if me.Name = strBtnName then
objBtnName.Enable = True
End If
Next objBtnName

コントロール名を取得できない時は
文字列をオブジェクト名へ変換してしたいと
思ってるのですが変換方法がわかりません。
もしそういうのAPIなどがあれば教えてください。よろしくお願いします。

Aベストアンサー

#1です。

あとは、Tagプロパティを利用するとか、
そのコントロールは自作ならば、相当するようなプロパティを追加するとか…?

ちなみに、
Dim strBtnName as String
Dim objBtnName as Object

For Each objBtnName In me.controls
If objBtnName.Name = strBtnName then
objBtnName.Enable = True
End If
Next objBtnName
ですよね(^^;

QActivexコントロール(ocx)のダウンロード。

現在ActiveXコントロールのアプリを作成(修正)
しています。
開発環境
OS: XP(SP2)
visualStudio6.0(SP5)

実行環境
OS: XP(SP2)

デバッグ環境では正常に動作するのですが、
OCXファイルを作成して、
ブラウザ上で実行するとどうもうまくいきません。
(修正前のアプリは正常にブラウザ上で動作する)
 現状としましては

・IEのセキュリティはActiveXのダウンロードを許可。

・バージョンは修正前のリビジョンに+1を設定。

・ダウンロードするOCXファイルは    C:\WINDOWS\Downloaded Program Filesのフォルダに
ダウンロードされてくるがインストールはされていない(状態が不明となる)

・clsIDをリナンバーしても動かない。

・修正前の状態から再度OCXファイルを作成するだけで
 も動かない。

・OCXをコンポーネントとして登録できない

・開発環境、実行環境をwin2000にしても
 同様の結果です

自分で思いつく事はすべてやってみたのですが、
うまくいきません。
なにかアドバイスでも何でもよいので
いただけないでしょうか?

現在ActiveXコントロールのアプリを作成(修正)
しています。
開発環境
OS: XP(SP2)
visualStudio6.0(SP5)

実行環境
OS: XP(SP2)

デバッグ環境では正常に動作するのですが、
OCXファイルを作成して、
ブラウザ上で実行するとどうもうまくいきません。
(修正前のアプリは正常にブラウザ上で動作する)
 現状としましては

・IEのセキュリティはActiveXのダウンロードを許可。

・バージョンは修正前のリビジョンに+1を設定。

・ダウンロードするOCXファイルは    C:\WINDO...続きを読む

Aベストアンサー

何はともあれ動作するようになったとのことで、良かったです。

さてclsidの件ですが、「他のソフトウェアから見て使用方法が同じに見えるプログラムに対しては同じclsidを割り振る」のが基本です。例えば、従来のプログラムに不具合があり、プロパティ・メソッド等のインターフェースは変更しないが不具合だけは解消したという場合はclsidは変えませんが、機能を追加してプロパティやメソッドが増減したような場合にはclsidを変えます。

<object>タグ内のclsidを変更したところ動作するようになったとのことですが、そうだとすれば、全く同じ状態で<object>タグ内のclsidとOCX内に記述しているclsidを元の値に戻し、レジストリに登録されたclsidも以前の値にすればやはり同じように動作するはずです。当初clsidを同じにしても変更しても動作しなかったのは、おそらく開発の手順が整理されていなかったため、適切な段階でOCXのレジストリへの登録作業が行われなかったためではないかと思います。

Qユーザーコントロール(OCX)のオブジェクト名

2点わからない点がありますのでよろしくお願いします。

(1)ユーザーコントロールのオブジェクト名を引数として使用したいのですが
エラーが発生し困っています。どのようにしたらいいのでしょうか?

ユーザ-コントロールのオブジェクト名:UserControl1
☆でエラーが発生する「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」
※関数aはDLLとなっておりどうしてもオブジェクト型で渡さなければなりません。

Private Sub Command1_Click()

Call a(Me)

End Sub

===DLL関数:a===
オブジェクト名とボタン名をINIファイルに書き込む処理
===========
Private Sub a(prmObj As Object)

Dim strMsg As String

strMsg = prmObj.Name ・・・☆





End Sub

(2)String型からObject型に変換するのは可能でしょうか?
INIファイルから"UserControl1.Command.Enable = False"というString型のデータを読込み、
ボタンを有効・無効設定するという事が処理がしたいのですが何かいい方法がありましたら教えてください。

Private Sub UserControl_Initialize()

Dim a As Object
Dim b as String'INIファイルから取得
Dim c as String       'INIファイルから取得

b = "UserControl1.Command1"
c = "False"

  Set a = Me.Controls(b)

If c = "False" then
a.Enable = False
else
a.Enable = True
End If

End Sub

2点わからない点がありますのでよろしくお願いします。

(1)ユーザーコントロールのオブジェクト名を引数として使用したいのですが
エラーが発生し困っています。どのようにしたらいいのでしょうか?

ユーザ-コントロールのオブジェクト名:UserControl1
☆でエラーが発生する「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」
※関数aはDLLとなっておりどうしてもオブジェクト型で渡さなければなりません。

Private Sub Command1_Click()

Call a(Me)

End Sub...続きを読む

Aベストアンサー

(2)のほうですが、
名前で指定されたコントロールを操作するには
フォーム上のコントロールを検索して目的のコントロールを見つける必要があります。
こんな感じで。

Dim myControl  As Control       ' Formのなかにある各コントロール
Dim myName   As String        ' 操作するコントロールの名前
For Each myControl In myForm.Controls  ' コレクションの各要素に対して繰り返します。
  If myControl.Name = myName Then
    ~~目的のコントロールに対する処理~~
  End If
Next myObject

QOCXのアイコンの登録の仕方

VB6.0でOCXを作成しています。
そのOCXにはビットマップで作成したアイコンがあるので
それを登録するようにしたいのですが、、、、
すいません、御存知の方お教え願えないでしょうか?
よろしくお願いいたします。

Aベストアンサー

OCXにアイコンをつけるというのは、
プロジェクトのアイコンのことですよね。
ダミーのフォームを追加してフォームにアイコンを
登録すればできると思います。
もう、遅いですかねー?


このカテゴリの人気Q&Aランキング

おすすめ情報