• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008によるOCX作成、またはHTMLからのDLL呼び出しは可能でしょうか?)

VB2008によるOCX作成、またはHTMLからのDLL呼び出しは可能でしょうか?

このQ&Aのポイント
  • VB2008ではHTMLからダイアログボックスを呼び出すActiveXを作成できない可能性があります。
  • 最低限「クライアント側からのダイアログボックス起動ができるHTML」「ダイアログボックス起動はVBで作成」という条件を満たせればよいので、(1)(2)で実現できなければ別の方法を探すことにします。
  • VB2008ではAxtiveXコントロールを作成することはできないため、AxtiveX DLLをHTMLから呼び出すことができるかは不明です。

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

> HTMLからのDLL呼び出しは可能でしょうか? EXEなら可能(だだし、色々制限があり) ノータッチ・デプロイメント http://www.atmarkit.co.jp/fdotnet/special/ntdeploy/ntdeploy_01.html > その画面ではサーバ側のファイルを閲覧させたいのですが、認証やセキュリティなどの観点から、 > ダイアログボックスの起動はクライアント側で動作するようにしたいです。 クライアント側からサーバ側のファイルを任意に参照?? どんな方法でも無理でしょう。 > Call Test.subOpenFile("C:\WINDOWS") これはクライアント側のフォルダを開いているだけです。 サーバ側のフォルダをWebで公開したいのであれば、 フォルダを右クリック→Web共有 IISマネージャでフォルダを右クリック→ディレクトリ参照をオン。 HTMLからそのフォルダにリンク。 または WebアプリをASP.NETなどで自作する。

Astra003
質問者

お礼

お礼をしておりませんでした。申し訳ありません。 ノータッチ・デプロイメントで実現できそうです。 ありがとうございました。

Astra003
質問者

補足

ご回答ありがとうございます。 >> Call Test.subOpenFile("C:\WINDOWS") >これはクライアント側のフォルダを開いているだけです。 申し訳ありません。 テストでローカルのフォルダを指定していたことがありまして、その時のソースを載せておりました。 Call Test.subOpenFile("\\サーバの共有フォルダ\フォルダ1\フォルダ1_1") のようにサーバのフォルダを指定して使います。 クライアント側は、 HTMLの画面を使わずともブラウザや「ファイル名を指定して実行」等で サーバの共有フォルダのアドレスを直接入力すれば、フォルダの内容を閲覧できる環境です。 (ですので、subOpenFileでもサーバのフォルダの内容を閲覧できました。) 前提条件の説明が足りておりませんでした。 あとこれも最初に書いていなかったのですが、 VB6の時のActiveXの資料によると、ActiveXコントロールは自分自身をインストールする機能があるとのことですので クライアントからHTML画面のサーバ閲覧の参照ボタンを押下 → ocxかdllのファイルをクライアント側にダウンロード → ダウンロードされたファイルからダイアログボックスを起動 という流れのものをイメージしておりました。 いろいろ説明が足りず申し訳ありません。 >(2)AxtiveXコントロールを作成できないなら、AxtiveX DLLをHTMLから呼び出せるか? その後実験で、VB2008の「クラスライブラリ」のプロジェクトで「ユーザーコントロール」を使って作成したdllを ローカルの仮想ディレクトリに保存し、下記のようにHTMLから呼び出すことはできました。 ※この「呼び出す」は、dllで作成したコントロール(UserControl1)をHTMLの画面上に表示できたという意味です。 <object id="TestControl1" classid="http:DllTest1.dll#DllTest1.UserControl1" height="500" width="500" VIEWASTEXT> </object> 「.NETにおいては、ActiveXコントロールに代わってWindowsフォームコントロールを作成できる」と聞いたので、 このdllがActiveXコントロールに等しいものなのではないかと。 よって、(2)の「dllをHTMLから呼び出す」ということ自体は成功なのですが、これもHTMLファイルとdllを同じ場所に 保存していないと、HTML画面上にdllのコントロールが表示されませんでした。 つまり、クライアント側にあるdllの実行は結局できませんでした。 またdllのコントロールが表示できる場合でも、前述のダイアログボックス起動の処理をコントロールから呼び出そうとすると 「アクセス許可の要求に失敗しました」エラーが出て実行できませんでした。 もし、この補足で何か取れる手段があるようでしたら、お教えください。 そして、 >EXEなら可能(だだし、色々制限があり) 「ノータッチ・デプロイメント」は知りませんでした。 その手段を調べさせていただきます。 ありがとうございます!

関連するQ&A