• 締切済み

VB6でActiveXを作成

こんにちは、AxtiveXを初めて作成することになり、 いろいろ調べた結果 工数や自分の能力(C++未経験)からVB6にて作成しようかと考えています。 .NET(C#)で作れれば一番嬉しいのですが、ActiveXのようなものができるだけで、いろいろと問題がありそうなので断念しました。 (レジストリの登録など?) ActiveXの配布はcabファイルなるもので、行うようですが VB6はC++ とは違ってランタイムがいると思います。ランタイムも一緒に配布することはできるのでしょうか?(自働インストールさせることができるのでしょうか?) 前提として、「何の準備もなくサイトにアクセスして、動作するもの(ActiveXのインストールダイアログなどは別として)」を作成しなければいけないため、 あらかじめ、ランタイムをインストールしてくださいということであれば、VB6での開発は断念せざるおえません。 ご回答、参考サイトなどありましたら、よろしくお願いします。

みんなの回答

  • wolf03
  • ベストアンサー率22% (241/1086)
回答No.1

VBのセットアップファイル群にはプロジェクトで参照されているランタイムが含まれます。 ただ、ActiveXをしっかり分かっていないようなのでそちらを知る方が先でしょう。

osiete8739
質問者

お礼

ご回答ありがとうございます。 >ただ、ActiveXをしっかり分かっていないようなのでそちらを知る方が>先でしょう。 はい。。まだ調べだして数日です。。すいません。 >VBのセットアップファイル群にはプロジェクトで参照されているランタイムが含まれます。 つまり、事前にランタイムなどをインストールする必要がないということですね!ありがとうございます。

osiete8739
質問者

補足

追記ご報告です。 いろいろと調べた結果、VB6のサポートやVista対応問題の関係で C++で開発を行うことになりました。 いろいろとあるんですね。。。 今後とも何かありましたら、アドバイス等よろしくお願いします。

関連するQ&A

  • VB6のランタイムについて

    VB6のランタイム配布について質問があります。 下記コントロール、またはDLLをVB6ランタイムが入っていない環境にインストールしようとした場合、ランタイム配布は必要でしょうか? 1.ActiveXコントロール(いわゆるユーザコントロール) 2.ActiveX.DLL(当DLLはCからCALLします)

  • VB6.0で作成したActiveXコントロール

    お世話になっております。 VB6.0で作成したActiveXコントロールをディストリビューションウィザード でパッケージ(インターネット用CABファイル)にし、Win2000Server(IIS)に 設定後、クライアントPCからIEで表示しようとすると、「セキュリティ警告」 のダイアログが表示され、ダイアログで「はい」を選択しても画面が表示さ れません。(デジタル署名は未作成) Win2000Proで同様のテストした場合は画面の表示まで実行出来ました。 IEではサーバーを信頼済みサイトに設定しています。 ダイアログタイトルは、 「セキュリティ警告」 メッセージが、 XXXXXXX.CABをインストールして実行しますか? 発行者は次の問題のため判別できません AUTHENTICODE署名を検出できません です。 上記の症状が発生する原因等をご存知の方がいらっしゃいましたら、ご教授をよろしくお願いいたします。

  • VBで作成したActiveXの実行について

    HTML上でOBJECTタグを使って、OCXなどを実行できるというようなことはネットで見つけることができたのですが、そのOCXがC言語で作られたものだったり、MediaPlayerみたいなものだったりするので、よくわかりません。知りたいことは・・・ 1.VBで作成したActiveXをHTMLで実行できますか? 2.VBで作成したActiveXをHTMLで実行したことがありますか? 3.HTMLで実行するActiveXを作成する場合、DLLですかOCXですか? 4.VBで作成したActiveXを使用する場合、特に気をつけることがありましたら教えて下さい。 以上、よろしくお願い致します。

  • VB4.0にて作成したソフトの配布

    VB4.0(32ビット版)にてソフトを開発しました。 フリーソフトとして配布しようと思います。 インストーラ(EXEとReadMeとKernel32.DLL,Version.DLL)を作成し、知人のPC(Win2000)にインストールしようと したら「VB40032.DLLが見つかりませんでした。」と表示され、インストーラも起動できなかったそうです。 VB6.0のランタイムを入れてもだめだったそうです。 やはり、VB4.0(32ビット版)のランタイムが必要なのでしょうか?ご教授願います。

  • 自作したActiveXの配布&インストールがうまくできなくて困っています

    はじめましてVB超初心者です。 (そもそもVBの問題なのか、C++の問題なのかもわかりません) 小さい会社に勤めています。 現在、他のITベンダーが過去に作っていった業務アプリケーションの変更を担当させられているのですが、そのアプリにActiveXが含まれています。 結果、ActiveXも作り直しが必要ということまではわかっていて、ロジックとしてはこんな感じに作ればよいというところまでは、明確になっています。 ⇒ActiveX側の処理はIEの裏で単純なファイル操作(読み込と削除)をやっています。今回そこを少々修正します。 で、その修正対象のActiveXはATLベースでできており、CABファイルで配布されクライアントのIE上のJavaScriptから呼び出されてインストール/動作するようなブツに仕上がっています。 結果、似たようなものをVS2008の環境で作ってビルドしてdllを作って、その開発したクライアントでは正しく動く(IEからのファイル操作ができた)ことが確認できたのですが、最終的にCABファイルにして他の端末に配ってインストールさせて動かすと、うまくいきません。うまくインストールできないのです。 そこで強制的にdllをレジストリ登録してみようとしたら、「アプリケーションの構成が正しくない」と言われてしまいます。 ・開発したPC上だと、なんら問題なく動作/レジストリ登録ができます ・開発したPCと同環境PCでもNGなのでIE設定の問題ではないはずです おそらく何かが足りないのだと思っていて、修正前と修正後のソースをVS上で見えるソースですべて見比べてみたのですが、表面上での違いが全く見当たりません。 (素人考えですが、今気になっているのは、修正前のdllが129KB程度なのに対して、修正後のdllは50KBと小さくなってしまっています) 基本のキの字も判っていない素人で、誠に申し訳ないのですが、問題と思われる点ご教示いただけると非常に助かります。よろしくお願いいたします。

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

    こんにちは。 はじめての投稿になります。 私は現在、「ファイルを開く」のコモンダイアログボックスを起動できるHTML画面を作りたいと思っております。 その画面ではサーバ側のファイルを閲覧させたいのですが、認証やセキュリティなどの観点から、 ダイアログボックスの起動はクライアント側で動作するようにしたいです。 それにあたって、ダイアログボックスを呼び出すオブジェクトをAxtiveXコントロール(OCX)で作成し、 そのOCXをHTMLから呼び出すことで実現できないかと考えました。 そこで、以下のことを調べております。 (1)無償のVB開発環境を使ってAxtiveXコントロールを作成することができるか? (2)AxtiveXコントロールを作成できないなら、AxtiveX DLLをHTMLから呼び出せるか? ちなみに現在使用している「無償のVB開発環境」は、Visual Studioの Visual Basic 2008 Express Edition です。 (1)に関しては、VB6ではAxtiveXコントロールを作成できたと聞きますが、どうもVB2008では(.Netでは)作成できないようです。(現在までに見つけた情報に、「.Netで作成できる」というものがないため) (2)に関しては、VB2008 Express Edition を使って、ダイアログボックスを呼び出す AxtiveX DLL を作成することには成功しています。 VBのCOMクラスのテンプレートにダイアログボックス起動の関数を記述し、ビルドしてdllを作成。 ↓ 別途VBによるWindowsフォームアプリケーションを作成し、「参照の追加」で上記dllを登録してダイアログボックス起動の関数を呼び出す。 という方法で、ダイアログボックスを呼び出せました。 ですので、HTMLの画面からも同じようにdll呼び出しができないかと思ったのですが、現在のところ方法が見つかりません。 ダイアログボックスを開く機能さえあればよく、ユーザーインターフェースは不要なので AxtiveX DLL でもよいと思ったのですが、HTMLからの呼び出しにはDLLではなくOCXを用いるという情報しか見つけられませんでした。 以上のことから、VB2008ではHTMLからダイアログボックスを呼び出すActiveXを作れないのではないか?と思える状態なのですが、それが可能であるという話がもしありましたら、お教えいただきたく思います。 最低限「クライアント側からのダイアログボックス起動ができるHTML」「ダイアログボックス起動はVBで作成」という条件を満たせればよいので、(1)(2)で実現できなければ別の方法を探すことにします。 最後に 必要かどうかわかりませんが、(2)で試しに作ったダイアログボックス呼び出しのCOMクラスのソースを載せておきます。 ご回答の参考になりますでしょうか。 Imports System.Windows.Forms <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _ Public Class ComClass1 Public Const ClassId As String = "2bdd38a4-f946-44e2-af47-5b9cbd2c24d5" Public Const InterfaceId As String = "fcd22890-f4cd-4e2a-b8c0-ae83f290c250" Public Const EventsId As String = "86c74809-966a-47cf-9324-adce776030eb" Public Sub New() MyBase.New() End Sub Public Function subOpenFile(ByVal inFilePass As String) As Boolean subOpenFile = False 'OpenFileDialogクラスのインスタンスを作成 Dim ofd As New OpenFileDialog() If inFilePass = "" Then ofd.InitialDirectory = "C:\" Else ofd.InitialDirectory = inFilePass End If ofd.Filter = "HTMLファイル(*.html;*.htm)|*.html;*.htm|すべてのファイル(*.*)|*.*" ofd.FilterIndex = 2 ofd.Title = "開くファイルを選択してください" ofd.RestoreDirectory = True ofd.CheckFileExists = True ofd.CheckPathExists = True 'ダイアログを表示 If ofd.ShowDialog() = DialogResult.OK Then Console.WriteLine(ofd.FileName) End If subOpenFile = True End Function End Class (呼び出し側では以下の記述で呼び出しに成功しました) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Test As New COMTest1.ComClass1 Call Test.subOpenFile("C:\WINDOWS") End Sub 以上、よろしくお願いいたします。

  • VB2.0とVB6.0の共存は可能?

    VBで作成したプログラムについて質問があります。 Windows95上で起動するプログラムをVB6.0で作成したのですが、 インストール対象のパソコンにはVB2.0で作成されたプログラムが 既にインストールされています。 この場合、VB6.0で作成したプログラムをインストールしても 問題はないのでしょうか? 以前DLLの上書きとかで問題が生じるととか聞いたことがあるので不安になっています。 ちなみにインストールするのはプログラムとランタイムのみで、 開発ツールはインストールするつもりはありません。 よろしくお願いします。

  • ActiveXの使い方を教えてください。

    昨日も質問させていただきましたがま倒しえてください。 標準EXEまでできていてIE内に表示させるためにはActiveXコントロールで作成しないといけないのですがどのようにどんな風にすればよいのでしょうか。 全くわからないので参考になる文献やサンプルがあれば非常に助かります。 私はVB6で開発して、Inter Devも入っています。 どんなActiveXコントロールを作成したらいいのでしょう・・・ よろしくお願いいたします。

  • VB2008でのDLL作成方法について

    はじめまして、はじめて投稿します。 初心者なので変な質問をしていたらすいません。VB2008を使用しています。 VBで作成したDLLファイルをLabviewで使用したいと思っています。 ただVB6.0でActiveX DLLを作成する方法はわかるのですが、VB2008で作成する方法がわかりません。 クラスライブラリでプログラムを作成し、DLLにすることはできるのです・ しかしレジストリに登録しようと思い「regsvr32 ファイルのパス**.dll」と入力したところ「**.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした」と出ます。 調べてもVB2008でのActiveX DLL作成方法が見つからなくて困っています!!! わかるかた、よろしくお願いいたします。

  • VB6とVisual C または C++ のランタイムについて質問です

    VB6とVisual C または C++ のランタイムについて質問です。 フリーソフトウェアを利用しようとした際にVisual C(C++)のランタイムが必要ですと記載されている場合があります。VB6のランタイムが必要な場合もあります。 情報を検索してみたところ、個人サイトで配布していたりソフトウェアで自動インストールされたりする場合もあるようですが、例えばVisual C++の場合ですと2003だったり2005だったり色々とあるようですし、VB6でも様々な版が個人サイトや窓の社・Vectorから配布されていますが、これは個別にインストールするべきなのかそれとも下位互換みたいなものがあるのかはっきりと理解できません。 マイクロソフトのダウンロードセンターでインストール対応できるのであればそちらから利用したいとも考えています。(ダウンロードセンターによる説明ではよく理解できませんでした)。 補足として、WindowsLiveのパックをインストールした際にVisualC++2005Redistritableというものががインストールされているようです。 ご教授ください。よろしくお願いします。

専門家に質問してみよう