dポイントプレゼントキャンペーン実施中!

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

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

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

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

----
Windows 2000 SP2
Visual Studio 6.0 SP5

A 回答 (3件)

ん?ネットワーク上のOCX?


どこにセットアップしたのでしょうか?

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

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

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


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

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

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

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

お礼日時:2002/10/24 10:46

使用するOCXのパス情報はVBPに記されております。


EXEにしたときも、最初にEXEがOCXを探す場所は、アプリケーションパスを見ます。

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

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

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

実験済みですよ。
    • good
    • 0

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



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

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

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

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

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

お礼日時:2002/10/17 10:04

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