>VB2008によるOCX作成、またはHTMLからのDLL呼び出しは可能でしょうか?入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。18:58回答数:1件こんにちは。私は現在、「ファイルを開く」のコモンダイアログボックスを起動できるHTML画面を作りたいと思っております。その画面ではサーバ側のファイルを閲覧させたいのですが、認証やセキュリティなどの観点から、ダイアログボックスの起動はクライアント側で動作するようにしたいです。それにあたって、ダイアログボックスを呼び出すオブジェクトをAxtiveXコントロール(OCX)で作成し、そのOCXをHTMLから呼び出すことで実現できないかと考えました。そこで、以下のことを調べております。(1)に関しては、VB6ではAxtiveXコントロールを作成できたと聞きますが、どうもVB2008では(.Netでは)作成できないようです。作成することには成功しています。VBのCOMクラスのテンプレートにダイアログボックス起動の関数を記述し、ビルドしてdllを作成。別途VBによるWindowsフォームアプリケーションを作成し、「参照の追加」で上記dllを登録してダイアログボックス起動の関数を呼び出す。いう方法で、ダイアログボックスを呼び出せました。HTMLの画面からも同じようにdll呼び出しができないかと思ったのですが、現在のところ方法が見つかりません。よいと思ったのですが、HTMLからの呼び出しにはDLLではなくOCXを用いるという情報しか見つけられませんでした。以上のことから、VB2008ではHTMLからダイアログボックスを呼び出すActiveXを作れないのではないか?と思える状態なのですが、それが可能であるという話がもしありましたら、お教えいただきたく思います。最低限「クライアント側からのダイアログボックス起動ができるHTML」「ダイアログボックス起動はVBで作成」という条件を満たせればよいので、(1)(2)で実現できなければ別の方法を探すことにします。最後に必要かどうかわかりませんが、(2)で試しに作ったダイアログボックス呼び出しのCOMクラスのソースを載せておきます。ご回答の参考になりますでしょうか。Sub以上、よろしくお願いいたします。通報するこの質問への回答は締め切られました。クラス」に関するQ&A:中2女子です。同じクラスで仲がいい男子(A君)を好きになりました。関数」に関するQ&A:メンバ関数テンプレートの仮想関数。ダイアログボックスの起動はクライアント側で動作するようにしたいです。クライアント側からサーバ側のファイルを任意に参照??どんな方法でも無理でしょう。Test.subOpenFile("C:\WINDOWS")これはクライアント側のフォルダを開いているだけです。サーバ側のフォルダをWebで公開したいのであれば、フォルダを右クリック→Web共有IISマネージャでフォルダを右クリック→ディレクトリ参照をオン。HTMLからそのフォルダにリンク。WebアプリをASP.NETなどで自作する。この回答への補足ご回答ありがとうございます。Test.subOpenFile("C:\WINDOWS")>これはクライアント側のフォルダを開いているだけです。テストでローカルのフォルダを指定していたことがありまして、その時のソースを載せておりました。Test.subOpenFile("\\サーバの共有フォルダ\フォルダ1\フォルダ1_1")のようにサーバのフォルダを指定して使います。クライアント側は、HTMLの画面を使わずともブラウザや「ファイル名を指定して実行」等でサーバの共有フォルダのアドレスを直接入力すれば、フォルダの内容を閲覧できる環境です。(ですので、subOpenFileでもサーバのフォルダの内容を閲覧できました。)前提条件の説明が足りておりませんでした。ダウンロードされたファイルからダイアログボックスを起動という流れのものをイメージしておりました。説明が足りず申し訳ありません。DLLをHTMLから呼び出せるか?その後実験で、VB2008の「クラスライブラリ」のプロジェクトで「ユーザーコントロール」を使って作成したdllをローカルの仮想ディレクトリに保存し、下記のようにHTMLから呼び出すことはできました。※この「呼び出す」は、dllで作成したコントロール(UserControl1)をHTMLの画面上に表示できたという意味です。VIEWASTEXT></object>「.NETにおいては、ActiveXコントロールに代わってWindowsフォームコントロールを作成できる」と聞いたので、このdllがActiveXコントロールに等しいものなのではないかと。よって、(2)の「dllをHTMLから呼び出す」ということ自体は成功なのですが、これもHTMLファイルとdllを同じ場所に保存していないと、HTML画面上にdllのコントロールが表示されませんでした。クライアント側にあるdllの実行は結局できませんでした。dllのコントロールが表示できる場合でも、前述のダイアログボックス起動の処理をコントロールから呼び出そうとすると「アクセス許可の要求に失敗しました」エラーが出て実行できませんでした。この補足で何か取れる手段があるようでしたら、お教えください。>EXEなら可能(だだし、色々制限があり)「ノータッチ・デプロイメント」は知りませんでした。その手段を調べさせていただきます。通報するこの回答へのお礼お礼をしておりませんでした。ノータッチ・デプロイメントで実現できそうです。ありがとうございました。エンターキーでイベントに入りたい。テンプレート」に関するQ&A:既婚者だし、同級生を友達と割り切りたい。回答数ランキングです。職業恋愛アドバイザー・婚活アドバイザーこの専門家の回答をチェック他の専門家の回答をチェックこのQ&Aを見た人が検索しているワード呼び出しからOCXDLLActiveXこのQ&Aと関連する良く見られている質問QVB.NETでActiveX(OCXファイル)作成VB6のプロジェクトファイルで作成したOCXファイルがございます。これをVB.NETに移行したいのですが、アップグレードウィザードを使用しても同様のOCXファイルは作成できますか?また、プロジェクトを新規作成する方法を教えていただけませんか?宜しくお願い致します。Frameworkのバージョンごどにテストが必要になります。C++でActiveXコントロール(OCXファイル)を作成することを検討します。自然にそうなったのだと思います。互換性のために残されている物だという認識です。VB6→C++のコード変換ツールがございましたら、教えていただけませんか?こちらについては分かりません。両方の言語を扱える人間が作業するべきだと思います。他の回答も見るQActiveXコントロールのHTMLへの貼り付け方その2たびたび恐れ入ります。Wizardでスケルトンを作成しました。(smp01というプロジェクトにしてあります)これは円を表示する機能を持っていますよね。これをHTMLに貼り付けて表示したいのですが、うまくいきません。なにが間違っているのか、抜けているのかも分かりません。HTMLのサンプルは以下のとおりです。HEIGHT="100"CLASSID="clsid:918576E5-324D-4480-825B-5B35A317594B"CODEBASE="d:/vc/smp01/Debug/smp01.ocx#Version=1,0,0,1"></OBJECT></BODY></HTML>どうぞ宜しくお願いします。Wizardでスケルトンを作成しました。(smp01というプロジェクトにしてあります)これは円を表示する機能を持っていますよね。これをHTMLに貼り付けて表示したいのですが、うまくいきません。なにが間違っているのか、抜けているのかも分かりません。HTMLのサンプルは以下のとおりです。Act...続きを読むAベストアンサー>どんなActiveXコントロールでも、>パラメータは必要になるのでしょうかそんなことはありません。私も以前サンプル程度にVBでOCXを作成し、Webページに貼り付けたことがありましたが、上記の形式でObjectタグを記述したら別に何も考えないで表示されました。私はレジストリ周りが一番怪しいかと思いますが、みてるとおっしゃってますよね。ActiveXコントロールの違いVB6で開発をしています。複数のEXEファイルを使用するシステムです。各EXEファイルの共通のモジュールをライブラリ化しようと思っています。どちらでも実現できると思うんですが、どちらで作成した方が良いのでしょうか?それぞれのメリット、デミリットを教えて下さい。混乱させますw私も最近まで知らなかったのですが、任意のタイミングでOCXもインスタンスの生成が可能みたいです。WinSockを張らずにPGを書き上げ、WinSockコントロールを使用する方法がわたしの利用しているメーリングリストに出ておりました。その結末は、「あまり公開はされてはいないけど、ほとんどのコントロールはEXEにしてからOCXとして取り込むことができる」ということです。ActiveXDLLも参照設定をしなければ、DLLバージョンが違っても大丈夫です。Objectとして、CreateObject("DLL定義")のように行うと、引数が一緒ならEXEはリコンパイルしないでもいいです。Object]と[CreateObject("Excel.Application")]とすると、EXCEL95~XPまで扱えます。不便なのは、タイプライブラリが未設定になるので、Excelの各プロパティ/メソッドを知らないといけないし、Excel固有の定数が宣言もされてないので、自分で定数値を調べなければいけません。バージョンの違いを気にしないでいけるのは、非常に便利です。速さのことを言ったら、当然DLLが早いです。OCXはプロパティにRight/Leftなどを持っています。変えて言うと実体を持っていると言うことです。非表示にしていても実体をもっています。DLLはインスタンスは生成されますが、OCXだって生成されるので、表示しないで使用するなら、OCXの意味があまりありません。※オリジナルボタンなどの、画面上必要ならOCX理由:画面に必要だから※画面に表示を行う必要がなくても、配布する気ならOCX理由:配布先のユーザが扱いやすい※そうじゃなければDLL理由:OCXにする理由が見つからないから余談です。私はいつもCommonコントロールは使用しません。理由:簡単なAPIでも実現できるのに、機能が少ないCommonコントロールを追加して、EXEの容量を大きくしたくないから混乱させますw私も最近まで知らなかったのですが、任意のタイミングでOCXもインスタンスの生成が可能みたいです。WinSockを張らずにPGを書き上げ、WinSockコントロールを使用する方法がわたしの利用しているメーリングリストに出ておりました。その結末は、「あまり公開はされてはいないけど、ほとんどのコントロールはEXEにしてからOCXとして取り込むことができる」ということです。ActiveXDLLも参照設定をしなければ、DLLバージョンが違っても大丈夫です。HogeHoge←(DLLの定...続きを読む他の回答も見るQAPI、OCX、DLLって何でしょう?タイトルどおりの質問です。ど素人なのでわかりやすく説明していただけるとありがたいです。参考URLも教えていただけるとよりありがたいです。質問全てを盛り込んであるHPを探してみました。わかりやすいとは思うのですけど、読んでみてください。それと、私なりの簡単な説明です。Library[ダイナミック・リンク・ライブラリ])簡単に言えば、関数集ファイルです。関数とは、VBのプログラミングでIf~Then,For~Next,Left,Lenなどいろいろ使った事あると思いますがこれがそうです。このような一般的なものは、いわゆるVBランタイムDLLに定義されています。その他いろいろと、用途別に*.DLLとあるわけです。Control[OLE・カスタム・コントロール])簡単に言えば、部品です。フォームやテキストボックス・ボタンなどなどがこれに当たります。ようは、画面を構成する部品だと思ってもらっても構いません。Interface[アプリケーション・プログラム・インターフェイス])これは、DLLで提供された関数を呼び出す仕組みのことです。VB標準の関数使用時には必要ありません。VB標準以外の外部DLL等の関数使用時に「これから使いますよ。参考URL:http://www.ab.wakwak.com/~greenspace/dev-api/theapi/whatsapi.html質問全てを盛り込んであるHPを探してみました。わかりやすいとは思うのですけど、読んでみてください。それと、私なりの簡単な説明です。Library[ダイナミック・リンク・ライブラリ])簡単に言えば、関数集ファイルです。関数とは、VBのプログラミングでIf~Then,For~Next,Left,Lenなどいろいろ使った事あると思いますがこれがそうです。このような一般的なものは、いわゆるVBランタイムDLLに定義されています。その他いろいろと、用途別に*.DLLとあるわけです。○O...続きを読む他の回答も見るQ.NETでActiveXコントロールを使う開発系初心者です。ある事情にて.NETの環境でActiveXコントロールの使用を行うことになりました。そこで、下記アドレスの方の方法を参考にさせていただいたのですが、ラッパークラスライブラリの生成が行えません。.NET環境でActiveXコントロールの実装を行うことに参考にさせていただいたサイトhttp://blogs.wankuma.com/ganfield/archive/2007/03/13/66556.aspxサイトに記載されているActiveXの登録には、下記のアドレスの方のを参考に、regsvr32で登録済みとなっています。(TYPE_E_CANTLOADLIBRARY))と出てしまい、ラッパーライブラリが生成できません。プログラミング言語ではC#の使用を予定しています。どなたかご回答をお願い致します。ある事情にて.NETの環境でActiveXコントロールの使用を行うことになりました。そこで、下記アドレスの方の方法を参考にさせていただいたのですが、ラッパークラスライブラリの生成が行えません。.NET環境でActiveXコントロールの実装を行うことに参考にさせていただいたサイトhttp://blogs.wankuma.com/ganfield/archive/2007/03/13/66556.aspxサイトに記載されているActiveXの登録には、下記のアドレスの方のを参考に、regsvr32で登録済みとなっています。ActiveX登録に参考にさせ...続きを読むAベストアンサーhttp://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/a2a04bb7-8523-4b39-b3bc-a1e2b02b7aca/で解決しているっぽい他の回答も見るQhtml上で、バッチやexeファイルの起動をしたいわけあって、学校(養護学校)初心者向けにhtmlでメニューを作っています。スタートボタンやディスクトップにショートカットを使わず、htmlの中からバッチファイルやexeファイルを起動できるでしょうか?もし可能ならば、教えてください。XPで起動したいファイルはexeファイルとバッチファイルです。