- ベストアンサー
カスタムコントロールのOCAファイルについて
ドメイン環境で、複数の端末を複数のユーザーが使うことを想定しています。 VBはカスタムコントロールを追加したときに、同じディレクトリに拡張子がOCAのファイルを作ります。 説明を見ると、キャッシュのようです。 しかし、UsersにはC:\WINNT\SYSTEM32への書きこみ権がありません(与えません)。 VBでカスタムコントロールを追加したとき、キャッシュが書き込みができないせいか、何も言わずに落ちてしまいます。 これの回避策などをお持ちの方いたら、ぜひご教授ください。 ---- Windows 2000 SP2 Visual Studio 6.0 SP5
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ん?ネットワーク上のOCX? どこにセットアップしたのでしょうか? OCXをみんなが書き込み権限の持つパスへインストールをするという意味なのですが・・・ ディストロビュージョンはOCX系のインストールパスを指定できませんでしたっけ?(できたと思ったのですが・・・) それならVisual Studio Installerを使用してみてはいかがでしょう。 自作EXE以外の付属コンポーネントのインストールパスを指定できたと思います。 そして C:\OCXフォルダなどを作り、そこの権限を緩めてやるなどの処置をしてあげないと・・・ それがだめなら、コントロールを自作したほうがいいと思います。 使用したいコントロールは何ですか? ちと不安に思ったのですが・・・ OCXをネットワーク上に置いて使用しているわけではないですよね? 具体的に、OCXのインストール先と、そのフォルダの権限状態などの環境が知りたいです。
その他の回答 (2)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
使用するOCXのパス情報はVBPに記されております。 EXEにしたときも、最初にEXEがOCXを探す場所は、アプリケーションパスを見ます。 ですのでSYSTEM32に入ったままでいいので、管理者権限で (1)使用したいコントロールを含んだプロジェクトを作成 (2)それをコンパイルして、セットアップを作成する。 そのとき関連ファイルは、「C:\WORKDIR\」にセットアップさせるように指定する。 (3)インストールを行う。 (4)「C:\WORKDIR\」の権限を最低レベルまで落とす。 このようにすることで同じOCXが、一つのパソコンに複数存在するようになります。 それ以降は開発ディレクトリを「C:\WORKDIR\」として行うとできます。 実験済みですよ。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
使用したいOCXに関連するファイルを、アプリケーションパス(開発パス)にコピって、そちらを参照設定にしてみては? それで動かないなら、別マシンで必要なコンポーネントを搭載したプロジェクトを作って、ディストリビューションでセットアップを作り、関連ファイルを全て権限を持つ場所にインストールさせるとか・・・・ 何にせよ、参照先を変える必要があると思うので、参照するコンポーネントの位置を変える方法で何とかなると思います。(未検証)
お礼
返事が遅くなってすみません。 この方法は試してみました。 ネットワーク上のプロジェクトのパスにOCXをコピーして参照設定するまではいいのですが、そのあと端末を代えてプロジェクトを読み込むと、同じように死んでしまいます。 作成されるOCAファイルは、どうもユーザーごと、端末ごとに違うらしく、それが書き込みできないと、落ちてしまうようです。 だから >ディストリビューションでセットアップを作 もおそらく意味がないようです。
お礼
返事が遅くなってすみません。 >どこにセットアップしたのでしょうか? Visual Studioが自動的にインストールするC:\WINNT\SYSTEM32です。 インストーラうんぬんではなく、最初から登録されているOCXを使用することに問題があるのです。