こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

カスタムコントロールのOCAファイルについて

ドメイン環境で、複数の端末を複数のユーザーが使うことを想定しています。

VBはカスタムコントロールを追加したときに、同じディレクトリに拡張子がOCAのファイルを作ります。
説明を見ると、キャッシュのようです。
しかし、UsersにはC:\WINNT\SYSTEM32への書きこみ権がありません(与えません)。

VBでカスタムコントロールを追加したとき、キャッシュが書き込みができないせいか、何も言わずに落ちてしまいます。

これの回避策などをお持ちの方いたら、ぜひご教授ください。

----
Windows 2000 SP2
Visual Studio 6.0 SP5

投稿日時 - 2002-10-08 15:31:28

QNo.376213

困ってます

質問者が選んだベストアンサー

ん?ネットワーク上のOCX?
どこにセットアップしたのでしょうか?

OCXをみんなが書き込み権限の持つパスへインストールをするという意味なのですが・・・

ディストロビュージョンはOCX系のインストールパスを指定できませんでしたっけ?(できたと思ったのですが・・・)
それならVisual Studio Installerを使用してみてはいかがでしょう。
自作EXE以外の付属コンポーネントのインストールパスを指定できたと思います。
そして C:\OCXフォルダなどを作り、そこの権限を緩めてやるなどの処置をしてあげないと・・・

それがだめなら、コントロールを自作したほうがいいと思います。
使用したいコントロールは何ですか?


ちと不安に思ったのですが・・・
OCXをネットワーク上に置いて使用しているわけではないですよね?
具体的に、OCXのインストール先と、そのフォルダの権限状態などの環境が知りたいです。

投稿日時 - 2002-10-18 02:28:15

お礼

返事が遅くなってすみません。

>どこにセットアップしたのでしょうか?
Visual Studioが自動的にインストールするC:\WINNT\SYSTEM32です。

インストーラうんぬんではなく、最初から登録されているOCXを使用することに問題があるのです。

投稿日時 - 2002-10-24 10:46:16

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

使用するOCXのパス情報はVBPに記されております。
EXEにしたときも、最初にEXEがOCXを探す場所は、アプリケーションパスを見ます。

ですのでSYSTEM32に入ったままでいいので、管理者権限で
(1)使用したいコントロールを含んだプロジェクトを作成
(2)それをコンパイルして、セットアップを作成する。
そのとき関連ファイルは、「C:\WORKDIR\」にセットアップさせるように指定する。
(3)インストールを行う。
(4)「C:\WORKDIR\」の権限を最低レベルまで落とす。

このようにすることで同じOCXが、一つのパソコンに複数存在するようになります。

それ以降は開発ディレクトリを「C:\WORKDIR\」として行うとできます。

実験済みですよ。

投稿日時 - 2002-10-24 11:00:43

ANo.1

使用したいOCXに関連するファイルを、アプリケーションパス(開発パス)にコピって、そちらを参照設定にしてみては?

それで動かないなら、別マシンで必要なコンポーネントを搭載したプロジェクトを作って、ディストリビューションでセットアップを作り、関連ファイルを全て権限を持つ場所にインストールさせるとか・・・・

何にせよ、参照先を変える必要があると思うので、参照するコンポーネントの位置を変える方法で何とかなると思います。(未検証)

投稿日時 - 2002-10-09 01:28:01

お礼

返事が遅くなってすみません。

この方法は試してみました。
ネットワーク上のプロジェクトのパスにOCXをコピーして参照設定するまではいいのですが、そのあと端末を代えてプロジェクトを読み込むと、同じように死んでしまいます。

作成されるOCAファイルは、どうもユーザーごと、端末ごとに違うらしく、それが書き込みできないと、落ちてしまうようです。
だから
>ディストリビューションでセットアップを作
もおそらく意味がないようです。

投稿日時 - 2002-10-17 10:04:43

あなたにオススメの質問